如何在vc中改变控件的背景色

如何在vc中改变控件的背景色

ID:22466861

大小:32.50 KB

页数:8页

时间:2018-10-29

如何在vc中改变控件的背景色_第1页
如何在vc中改变控件的背景色_第2页
如何在vc中改变控件的背景色_第3页
如何在vc中改变控件的背景色_第4页
如何在vc中改变控件的背景色_第5页
资源描述:

《如何在vc中改变控件的背景色》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、如何在VC中改变控件的背景色在VC编程中要改变控件(诸如CView,CFrameWnd,orCWnd等)的背景色可通过处理特定的消息来实现。但如果想改变按钮的颜色,就只能使用自绘制的按钮(也可以用位图按钮,此处未做说明)而不能通过OnCtlColor()改变。  一、在一个MFC应用程序中,要改变控件的背景色可通过重载OnCtlColor()函数来实现。方法是在该函数中设置所需颜色后再返回一个画刷句柄便可重绘控件背景色。OnCtlColor()函数对于控件背景色的处理是通过捕捉相应的控件消息来实现的。常用的此类消息有:CTLCOLOR_

2、DLG对话框CTLCOLOR_EDIT编辑框CTLCOLOR_LISTBOX列表框CTLCOLOR_MSGBOX消息框CTLCOLOR_SCROLLBAR滑动条CTLCOLOR_STATIC静态文本框、矩形等。以下示例代码说明如何更改以上控件的背景色://CmyDialog.h定义classCMyDialog:publicCdialog//派生自己的对话框类{……..//Implementationprotected://Generatedmessagemapfunctions//{{AFX_MSG(CMyDialog)afx_msgH

3、BRUSHOnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor);…….//}}AFX_MSGDECLARE_MESSAGE_MAP()};//CmyDialog.cpp定义……HBRUSHCMyDialog::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor){switch(nCtlColor){caseCTLCOLOR_EDIT:caseCTLCOLOR_MSGBOX:caseCTLCOLOR_DLG:caseCTLCOLOR_EDIT://在此加入你想要改变背景色

4、的控件消息pDC->SetBkMode(TRANSPARENT);HBRUSHB=CreateSolidBrush(COLOR);//COLOR是你想设置的颜色return(HBRUSH)B;default://其他控件设置自己默认的颜色和背景刷.returnCDialog::OnCtlColor(pDC,pWnd,nCtlColor);}}说明:1、可分别处理以上消息以实现不同控件不同背景色。2、此方法不适用于按纽控件。二、通过定制来实现不同颜色按纽。以下通过定制方形彩色按纽来说明:第一步:派生出自己的按纽类。//CcolorButt

5、on.hclassCColorButton:publicCButton{DECLARE_DYNAMIC(CColorButton)public:CColorButton();virtual~CColorButton();BOOLAttach(constUINTnID,CWnd*pParent,constCOLORREFBGColor=RGB(192,123,192),//按纽的背景色constCOLORREFFGColor=RGB(1,1,1),//文本颜色);protected:virtualvoidDrawItem(LPDRAWIT

6、EMSTRUCTlpDIS);//重定义虚拟函数DrawItemvoidDrawFrame(CDC*DC,CRectR);//绘制按纽框voidDrawFilledRect(CDC*DC,CRectR,COLORREFcolor);//填充按纽框voidDrawLine(CDC*DC,CRectEndPoints,COLORREFcolor);voidDrawLine(CDC*DC,longleft,longtop,longright,longbottom,COLORREFcolor);voidDrawButtonText(CDC*DC

7、,CRectR,constchar*Buf,COLORREFTextColor);//绘制按纽上的文本COLORREFGetFGColor(){returnm_fg;}COLORREFGetBGColor(){returnm_bg;}private:COLORREFm_fg,m_bg;};#endif第二步:定义各函数//CcolorButton.cpp……//CColorButtonIMPLEMENT_DYNAMIC(CColorButton,CButton)CColorButton::CColorButton(){}CColorBu

8、tton::~CColorButton(){}//定义Attach()函数BOOLCColorButton::Attach(constUINTnID,CWnd*pParent,constCOLORREFBG

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。