自绘热点按钮

原创 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



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

自定义按钮控件-热点按钮

1."HotButton.h" 指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用其相应的函数,这个函数就是虚函数。 class CHotButton : public CButto...
  • greless
  • greless
  • 2017年04月05日 16:10
  • 225

MFC自绘Button按钮分析和实现

对于按压式的Button按钮,WM_CTLCOLOR无法完成按钮控件的背景颜色和字体颜色修改,若想要完成外观定制需要添加WM_DRAWITEM消息或者重写CButton类中的DrawItem函数完成按...
  • xiao3404
  • xiao3404
  • 2016年12月18日 17:55
  • 640

MFC-自绘贴图按钮

前言 控件窗口自绘贴图需要子类化, 有自绘风格, 接管WM_PAINT, 覆盖虚函数DrawItem. 效果 工程下载 srcSelfDrawBtn.zip 工程预览 调用方代...
  • LostSpeed
  • LostSpeed
  • 2016年03月15日 11:21
  • 887

MFC自绘按钮的实现(不断更新)

一.自绘按钮的实现过程 申明自绘属性进行VM_MESUREITEM事件响应,说明按钮的尺寸进行VM_DRAWITEM消息的重新响应,说明如何绘制按钮 首先在vc6中新建工程,选择MFC并且新建...
  • zxccaoya
  • zxccaoya
  • 2017年01月09日 19:59
  • 1137

菜鸟也疯狂,易语言自绘控件__按钮篇,用所有者自绘方式实现

Button类的控件包括有:选择框、单选框、按钮、分组框、颜色选择器等,这些控件其实都是可以实现OWNERDRAW自绘的, 使用OWNERDRAW自绘方式,Window会为我们准备了一个DRAWI...
  • jack97119
  • jack97119
  • 2011年12月23日 21:09
  • 2063

mfc 按钮自绘

MFC  按钮自绘 author:songyanwu 说明:此文章简单的自绘一个按钮,同时也介绍自绘的一些原理;(绝对适合初学者入门,我也Goolgle 很多资料,介绍相当模糊为此也花了两天时间整理...
  • u010236550
  • u010236550
  • 2014年11月27日 13:08
  • 3616

CButton控件:mfc自绘按钮类,1张图片显示多种状态的方法

mfc自绘按钮类,1张图片显示多种状态的方法 代码下载(vc6.0):http://download.csdn.net/detail/chen1083376511/9872614 下载的解压下来,工程...
  • chen1083376511
  • chen1083376511
  • 2017年06月16日 18:37
  • 435

MFC Button控件自绘制----详细讲解

VC下的界面着实难看 有时候我们不得不自己进行控件的绘制 工作以前 一直不理解最近再次看了学了一遍终于明白了一点   与大家分享下...       比如说   我们要改变一个编辑框的背景 我们...
  • yue7603835
  • yue7603835
  • 2011年08月01日 03:30
  • 13622

Windows SDK开发之按钮自绘

    首先确保需要自绘的按钮要勾选了owner-drawn (所有者绘制)属性。    然后在按钮所在对话框的回调函数中,处理WM_DRAWITEM消息即可。     本例以对话框上最常见的OK,C...
  • leopardaa521
  • leopardaa521
  • 2010年03月14日 13:36
  • 2914

VC++ WIN32 sdk实现按钮自绘详解.

  网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说.实例图片:  首先建立一个标准的Win32 Application 工程.选择a simple Win...
  • geniusdot
  • geniusdot
  • 2007年03月03日 23:47
  • 15851
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自绘热点按钮
举报原因:
原因补充:

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