
pDC->SetTextColor(RGB(255, 0, 0));}// TODO: 在此更改 DC 的任何特性 // TODO: 如果默认的不是所需画笔,则返回另一个画笔return hbr;} 但是按钮控件是个例外,要想改变按钮控件的颜色或者是字体颜色,需要自己从CButton派生出自己的BUTTON类,然后再这个派生类中重写DrawItem函数,最后在对话框中按钮控件关联派生类对象,具体代码如下,这里是把对话框背景设为绿色,文字设为红色 void CCMDaButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){ // TODO: 添加您的代码以绘制指定项 UINT uStyle = BS_DEFPUSHBUTTON ;//DFCS_BUTTONPUSH; // This code only works with buttonsASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON); // If drawing selected, add the pushed style to DrawFrameControlif (lpDrawItemStruct->itemState & ODS_SELECTED)uStyle |= DFCS_PUSHED; // Draw the button frame::DrawFrameControl(lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem,DFC_BUTTON, uStyle); CDC pDC = CDC::FromHandle(lpDrawItemStruct->hDC); // Get the button's textCString strText;GetWindowText(strText); // Draw the button text using the text color redCBrush B;CRect rect;CRect focusRect;focusRectCopyRect(&lpDrawItemStruct->rcItem);DrawFocusRect(lpDrawItemStruct->hDC, (LPRECT)&focusRect);focusRectleft += 4;focusRectright -= 4;focusRecttop += 4;focusRectbottom -= 4; rectCopyRect(&lpDrawItemStruct->rcItem);pDC->Draw3dRect(rect, ::GetSysColor(COLOR_BTNSHADOW), ::GetSysColor(COLOR_BTNHILIGHT));//画刷为绿色BCreateSolidBrush(RGB(0,255,0));::FillRect(lpDrawItemStruct->hDC,&rect, (HBRUSH)Bm_hObject);::SetBkMode(lpDrawItemStruct->hDC,TRANSPARENT);//文本为红色
1改变对话框的背景色
在C…App类中的InitInstance()里添加
SetDialogBkColor(RGB(0,192,0),RGB(0,0,0));
2如果想改变静态文本或单选按钮的背景色可以用你说的那个获得控件ID,然后设置背景色,具体步骤:
(1)响应对话框类的WM_CTLCOLOR消息生成OnCtlColor函数
(2)为对话框类添加成员变量CBrush m_brush;
并在初始化函数中初始化m_brushCreateSolidBrush(RGB(0,255,0));
(3)在OnCtlColor函数中添加代码以改变控件的文字颜色和背景色
switch(pWnd->GetDlgCtrlID())
{
case(IDC_INPUT):
pDC->SetTextColor(RGB(255,0,192));
pDC->SetBkMode(TRANSPARENT);
return m_brush;
break;
case(IDC_EDIT1):
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkMode(TRANSPARENT);
return m_brush;
break;
case(IDC_CHOICE):
pDC->SetTextColor(RGB(255,128,0));
pDC->SetBkMode(TRANSPARENT);
return m_brush;
break;
case(IDC_RADIO1):
pDC->SetTextColor(RGB(255,0,20));
pDC->SetBkMode(TRANSPARENT);
return m_brush;
break;
default:
break;
}
3如果想改变按钮的背景色,简直太难了,你要重写两个类,还需要在网上下,孙鑫的视频教程中也简单介绍了这个,可只是改变按钮的文字颜色
CFontDialog dlg;
定义一个COLORREF变量
m_FontColor=dlgm_cfrgbColors;
dcSetTextColor(m_FontColor);
以上就是关于vc中如何改变对话框控件的颜色全部的内容,包括:vc中如何改变对话框控件的颜色、VC中改变窗口背景颜色和控件背景颜色、vc中字体颜色的设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)