工控编程吧
标题:
56上位机VC MFC实现任意颜色的编辑框
[打印本页]
作者:
qq263946146
时间:
2015-12-5 22:57
标题:
56上位机VC MFC实现任意颜色的编辑框
(, 下载次数: 1)
上传
点击文件名下载附件
56上位机VC MFC实现任意颜色的编辑框
功能展示
我们平时使用软件或网页时,编辑框都有很漂亮的外框,这个功能如何实现?我们当前例程就完整了多彩边框的编辑框,效果如图
要点提示
绘制不同颜色的编辑框 ,我们只要处理编辑框类的WM_CTLCOLOR消息时,用设备上下文类CDC的成员函数FrameRect()便可快速实现;void FrameRect( LPCRECT lpRect, CBrush* pBrush ); lpRect对要描绘的边框进行描述的一个矩形。这等效于将画笔设置成一个单位的宽度,然后用矩形函数画出一个矩形出来;
pBrush为将要使用的画刷句柄;
实现功能
1.新建基于对话框的应用程序
2.从Cedit派生一个自己的编辑框 类class CColorFulEdit : public Cedit;添加颜色变量COLORREF m_Colour; //设置编辑框颜色;和它的设置函数voidCColorFulEdit::SetColour(COLORREF Colour){ m_Colour = Colour; }
3.添加WM_CTLCOLOR消息的处理函数
HBRUSH CColorFulEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
CDC* dc = GetDC(); //获取画布对象
CRect rect;
GetClientRect(rect); //获取客户区域
rect.InflateRect(1,1,1,1);//将客户区域增大一个像素
CBrush brush (m_Colour);//创建画刷
dc->FrameRect(rect,&brush);//绘制边框
// TODO: Return a non-NULL brush if the parent's handler should not be called
return NULL;
}
复制代码
4.最后是我这个派生类的使用。在对话框中添加几个编辑框且关联变量,如我们例程CColorFulEdit m_Edit; 再进行编辑框颜色的设置便可 m_Edit.SetColour(RGB(128,128,0));
下面我们来看下整个功能实现的过程
[iqiyi]http://player.video.qiyi.com/02210085f6d16f5fea99558818816075/0/0/w_19rt6he3ft.swf-albumId=4975576709-tvId=4975576709-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4