展开全部
最近要实现一个功能,类似e5a48de588b662616964757a686964616f31333365646231Cmd等控制台窗口的样式。一个对话框中放置一个编辑框,需要在窗口开启后将编辑框的背景色设置为黑色,将其上面的字体颜色设置为白色。
于是研究了一下,发现功能的实现很容易,需要添加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; }