
2.可手动添加OnCtlColor()函数
在.h文件中添加函数声明:
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
在.cpp文件中添加:
BEGIN_MESSAGE_MAP(CDefinedViewDlg, CDialog)
...
ON_WM_CTLCOLOR()
...
END_MESSAGE_MAP()
//函数实现
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor)
if (pWnd->GetDlgCtrlID()==IDC_E_TEST) //控件ID
pDC->SetTextColor(RGB(255,0,0))//设置颜色
return hbr
}
通过ClassWizard添加WM_CTLCOLOR消息。2.
在添加的OnCtlColor函数里添加如下代码:
if
(pWnd->GetDlgCtrlID()==IDC_EDIT1)
//IDC_EDIT1为控件ID
pDC->SetBkColor(RGB(255,0,255))
在生成的类中添加重载的虚函数OnCtlColor(CDC*pDC,CWnd *pWnd,UINT nCtlColor)。
可以在该函数中设置pDC->SetBkMode(TRANSPARENT)将文本的背景设置为透明。
可以在该函数中设置pDC->SetTextColor(RGB(255,0,0))将文本的颜色设置为红色。
也可以指定某一静态文本的字体颜色,可以加如下判断:
switch(pWnd->GetDlgCtrlID())
{
case IDC_INFO:
pDC->SetBkMode(TRANSPARENT)
pDC->SetTextColor(RGB(255,0,0))
}
这个判断,可以仅仅将ID号为IDC_INFO的静态文本的字体颜色设置为红色。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)