1、添加以下宏,处理WM_CTLCOLOR*消息
MESSAGE_HANDLER(WM_CTLCOLOR*, OnCtlColor)
2、在OnCtlColor中:
LRESULT CAboutDlg::OnCtlColor(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
CWindow wndText1 = GetDlgItem(IDC_TEXT1);
HDC hdc = (HDC)wParam;
if ( (HWND)lParam == wndText1 .m_hWnd )
{
::SetTextColor(hdc, RGB(255, 0, 0));
::SetBkColor(hdc, ::GetSysColor(CTLCOLOR_DLG));
// 返回一个画刷告知该消息已处理,不用执行默认动作了
return (LRESULT)::GetSysColorBrush(CTLCOLOR_DLG);
}
return 0;
}
本文介绍如何通过处理WM_CTLCOLOR*消息来改变控件的颜色属性,包括文本颜色和背景颜色。具体实现中,首先定义了消息处理器OnCtlColor,并在其中检查消息是否与特定控件相关联。如果消息匹配,则设置文本颜色为红色并保留系统默认的背景色。
1770

被折叠的 条评论
为什么被折叠?



