自绘热点按钮
一、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