参数 nCtlColor用于指定控件的类型,可以是:
. CTLCOLOR_BTN 按钮控件
. CTLCOLOR_DLG 对话框
. CTLCOLOR_EDIT编辑框
. CTLCOLOR_LISTBOX 列表控件
. CTLCOLOR_MSGBOX 消息控件
. CTLCOLOR_SCROLLBAR滚动条控件
.CTLCOLOR_STATIC 静态控件
if(pWnd->GetDlgCtrlID()==CTLCOLOR_STATIC)
{
pDC->SelectObject(pFont);
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,0,0));
}
假设你已有了名为 My的对话框工程.你有了一个 STATIC的控件,ID为 IDC_STATIC1.
HBRUSHCMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd,nCtlColor);
// TODO: Change any attributesof the DC here
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC-> SetTextColor(RGB(255,0,0)); //字体颜色
pDC->SetBkColor(RGB(0, 0, 255));//字体背景色
}
// TODO: Return a different brush if thedefault is not desired
return hbr;
}
如果要指定某个特定控件可以这样写:ID为IDC_STATIC1
if(pWnd->GetDlgCtrlID()==IDC_STATIC1)
{
pDC-> SetTextColor(RGB(255,0,0)); //设置字体颜色
pDC-> SetBkMode(TRANSPARENT); //设置字体背景为透明
//TODO: Return a different brush if the default is notdesired
return (HBRUSH)::GetStockObject(BLACK_BRUSH); // 设置背景色
}
else
returnhbr;
【注】
BLACK_BRUSH:黑色
WHITE_BRUSH:白色
GRAY_BRUSH:灰色
NULL_BRUSH:透明
HOLLOW_BRUSH:透明///
OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
的参数:
pDC 包含了子窗口的显示设备环境的指针。可能是临时的。
PWnd 包含了要求颜色的控件的指针。可能是临时的。