自绘热点按钮

原创 2015年07月07日 09:38:19

自绘热点按钮


一、1.在VS2010中新建MFC对话框工程,命名“Test”。

2.删除对话框上所有控件,然后在对话框上添加一个按钮,一个组合框,一个编辑框,更改按钮ID为IDC_TRANSFORM_BTN,更改编辑框ID为IDC_EDIT2。

3.在工作区窗口选择RecourceView选项卡,向对话框中依次导入下列4个位图资源(IDB_BITMAP1…IDB_BITMAP4)


4.创建以CButton类为基类的派生类CHotButton

5.在CHotButton类的头文件中声明变量,


6.在CHotButton类的源文件中的构造函数初始化变量



7. 利用类向导在CHotButton类中添加SetCBitmap函数,在该函数中设置使用的CBitmap类对象;并添加DetachCBitmap函数


7.利用类向导在CHotButton类中添加PreSubclassWindow虚方法,在该方法中设置定时器


7.利用类向导在CHotButton类中处理WM_TIMER消息,在该消息的处理函数中获得鼠标的位置,并判断鼠标是否在按钮控件区域中




8.利用类向导在CHotButton类中调用DrawItem方法,在按钮中绘制图片








9.利用类向导在CHotButton类中处理WM_LBUTTONDOWN消息,在按钮被按下时将m_IsPressed值设为TRUE

10.利用类向导在CHotButton类中处理WM_LBUTTONUP消息,在按钮弹起时将m_IsPressed值设为FALSE


11.在对话框头文件中声明CBitmap类对象,并引用HotButton.h头文件;为“转换”按钮控件关联CHotButton类变量,打开按钮控件属性窗口,选择Ownerdraw自绘属性


12.在对话框头文件中为编辑框控件关联对象m_Edit2,声明一个画刷


13.在对话框源文件中的OnInitDialog()函数中添加


14.在对话框源文件中的OnPaint()函数中的if-else语句的else中添加



15.在对话框源文件中处理WM_CTLCOLOR消息



16.双击“转换”按钮,添加其单击消息响应函数


正常效果图如下:


热点效果图如下:


单击“转换”按钮后,按钮禁用效果:



本程序源码:

http://download.csdn.net/detail/u013541325/8875441



版权声明:本文为博主原创文章,未经博主允许不得转载。

自绘对话框以及按钮

  • 2013年11月22日 16:14
  • 33KB
  • 下载

自绘实现半透明水晶按钮-一位大神的nx作品

目录(?)[+] 运行效果 实现方法 1.给按钮加上BS_OWNERDRAW样式 2.重载DrawItem函数,在这里绘制按钮 3.关键之处就是把父窗口的背景复制到按钮上...

自绘的MFC的多边形按钮类

  • 2014年06月05日 15:27
  • 2KB
  • 下载

自绘按钮控件的源代码资源

  • 2010年07月02日 11:33
  • 79KB
  • 下载

自绘按钮

1 native C++  创建带BS_OWNERDRAWf风格的按钮 在wndproc中响应WM_DRAWITEM,自绘。 下图为(windows程序设计(第五版)中)截图,上图响应WM_D...
  • jiht594
  • jiht594
  • 2011年10月24日 10:24
  • 539

自绘按钮加载png的类

网上收集的三个自绘按钮控件加载png的类 BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此...
  • greless
  • greless
  • 2017年07月07日 13:36
  • 244

自绘按钮和功能类

  • 2014年02月18日 08:46
  • 15.62MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自绘热点按钮
举报原因:
原因补充:

(最多只允许输入30个字)