欢迎来到天天文库
浏览记录
ID:10976678
大小:28.50 KB
页数:3页
时间:2018-07-09
《visualc++mfc精多练实现多颜色边框的编框cedit》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、传统编辑框是没有各种颜色的,VC6中实现不同颜色的编辑框,也不是大难事。以CEdit类为基类派生CColourEdit类,然后设置WM_CTLCOLOR消息,使用FrameRect函数重绘编辑框的边框。FrameRect函数原型如下:voidFrameRect(LPCRECTlpRect,CBrush*pBrush);具体可以查看MSDN里的参考。新建一个建立对话框的应用程序,向窗体中添加8个编辑框控制。通过NewClass窗口生成一个新类CColourEdit,基类为CEdit。添加一个COLORREF类型的成员变量m_Colou
2、r。1.HBRUSHCColourEdit::CtlColor(CDC*pDC,UINTnCtlColor)2.{3. CDC*dc=GetDC();//获取画布对象4. CRectrect;5. GetClientRect(rect);//获取客户区域6. rect.InflateRect(1,1,1,1);//将客户区域增大一个像素7. CBrushbrush(m_Colour);//创建画刷8. dc->FrameRect(rect,&brush);//绘制边框9.10. returnNULL;11
3、.}复制代码VC++/MFC精讲多练#002:如何改变编辑框CEdit中文字的颜色实现应用中,改变编辑框中文字的颜色是很常用的一个技巧,可以使用SetTextColor函数改变编辑框中文本的颜色,通过对消息WM_CTLCOLOR的响应函数来实现对SetTextColor函数的调用。在控件被显示之前,WM_CTLCOLOR消息被发送到控件所在的对话框,这个消息的响应函数会修改对话框及其中控件的颜色。该消息的响应函数原型为:afx_msgHBRUSHOnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor);
4、SetTextColor函数的原型为:virtualCOLORREFSetTextColor(COLORREFcrColor);具体参数含义及其取值,请参考MSDN。新建一个基于对话框的MFC应用程序,在窗体上添加1个编辑框控件和8个单选按钮控件。添加一个COLORREF:1.COLORREFcolour;复制代码改变COLORREFcolour的代码也很简单:1.voidCColourTextDlg::OnRed()2.{3. colour=RGB(255,0,0);4. m_edit.SetFocus();5.}6.7.
5、voidCColourTextDlg::OnBlue()8.{9. colour=RGB(0,0,255);10. m_edit.SetFocus();11.}12.13....复制代码设置颜色:1.HBRUSHCColourTextDlg::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)2.{3. HBRUSHhbr=CDialog::OnCtlColor(pDC,pWnd,nCtlColor);1. 2. if(nCtlColor==CTLCOLOR_EDIT)3.
6、 pDC->SetTextColor(colour);4. returnhbr;5.}
此文档下载收益归作者所有