最近要实现一个功能,类似Cmd等控制台窗口的样式。一个对话框中放置一个编辑框,需要在窗口开启后将编辑框的背景色设置为黑色,将其上面的字体颜色设置为白色。
于是研究了一下,发现功能的实现很容易,需要添加WM_CTLCOLOR消息的响应函数:OnCtlColor。代码如下:
HBRUSH CShellDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor) // TODO: 在此更改 DC 的任何特性 ,// TODO: 如果默认的不是所需画笔,则返回另一个画笔 。
if (pWnd>GetDlgCtrlID()==IDC_DISPLAY) { , pDC->SetBkColor(RGB(0,0,0)) pDC->SetTextColor(RGB(255,255,255)) hbr=(HBRUSH)GetStockObject(BLACK_BRUSH) return hbr } return hbr }
public void setBackground(Color c)设置组件的背景色。背景色对每个组件的影响各不相同,并且部分受背景色影响的组件在不同的 *** 作系统之间可能有所不同。
用这个方法嘛,改变不了,可能是你在窗体上添加了别的容器什么的把当前要改变的给挡上了.仔细排查一下,相信你会改过来的.
JTextField jtf=new JTextfield()jtf.setForeground(Color.red)//设置文本框内文字颜色为红色
jtf.setBackground(Color.green)//设置文本框背景色为绿色
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)