QQ登录

只需一步,快速开始

56上位机VC MFC实现任意颜色的编辑框

[ 复制链接 ]

56上位机VC MFC实现任意颜色的编辑框

56上位机VC MFC实现任意颜色的编辑框

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消息的处理函数
  1. HBRUSH CColorFulEdit::CtlColor(CDC* pDC, UINT nCtlColor)
  2. {
  3.         // TODO: Change any attributes of the DC here
  4.                 CDC* dc = GetDC(); //获取画布对象
  5.         CRect rect;
  6.         GetClientRect(rect); //获取客户区域
  7.         rect.InflateRect(1,1,1,1);//将客户区域增大一个像素
  8.         CBrush brush (m_Colour);//创建画刷
  9.         dc->FrameRect(rect,&brush);//绘制边框

  10.         // TODO: Return a non-NULL brush if the parent's handler should not be called
  11.         return NULL;
  12. }
复制代码
4.最后是我这个派生类的使用。在对话框中添加几个编辑框且关联变量,如我们例程CColorFulEdit  m_Edit; 再进行编辑框颜色的设置便可  m_Edit.SetColour(RGB(128,128,0));


下面我们来看下整个功能实现的过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:56.上位机VC MFC实现任意颜色的编辑框.rar 
文件大小:135.16 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索