VC实现Button响应WM_LBUTTONDOWN和WM_LBUTTONUP

几天弄个程序,需要实现Button响应WM_LBUTTONDOWN和WM_LBUTTONUP功能,查了很多资料终于弄好了,特意记录下来,以备不时。

有两种方法,一种是利用PREMSG另一种是自己写BUTTON

后者的整体的思路是:继承CButton类并添加WM_LBUTTONDOWN和WM_LBUTTONUP消息响应。

一、功能要求:

1、在某个按钮上按下鼠标时执行任务,释放鼠标时停止;

2、在同一个对话框里有多个类似的按钮,每个按钮执行的任务也不相同;

二、功能实现:

1、启动MFC ClassWizard;

2、单击对话框上的“Add Class”按钮,选择“New……”,进入“New Class”向导;

3、在“Name”栏填入你要新建的类的类名(这里以MyButton为例),在Base Class中选择“CButton”,其余不做修改,完成后点击“OK”,在“Message Map”页中的“Project”中选择你的工程,在“Class Name”中选中你刚才创建的类名,为MyButton类创建WM_LBUTTONDOWN和WM_LBUTTONUP消息;

4、在对话框的头文件及源文件中包含MyButton的头文件;

5、在对话框中绘制两个(数量任意,这里以2个为例)按钮;

6、启动MFC ClassWizard,在Member Variable页为刚才的两个按钮添加Dialog成员变量(m_MyButton1,m_MyButton2),单击“OK”完成;

7、编辑MyButton头文件,为MyButton类建立成员变量(如函数指针,计算机端口,字符串等),可以是public(可以直接修改)或者protected(需再建立成员函数用以改变他们的值);

8、编辑MyButton源文件,实现OnLButtonDown及OnLButtonUp函数,这两个函数通过成员变量完成相关操作;

9、修改对话框源文件的相关函数来向MyButton传值。

通过以上操作后就可以实现Button响应WM_LBUTTONDOWN和WM_LBUTTONUP消息了。


参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值