最近要实现一个功能,类似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;
}
效果图如下:
如果我们需要改变其它控件的背景颜色以及字体颜色等相关功能,也可以添加次消息响应函数来实现,方法类似。
转载请注明原文地址: https://ju.6miu.com/read-2697.html