VC实现Button响应WM_LBUTTONDOWN和WM_LBUTTONUP

来源:互联网 发布:广告设计和美工的区别 编辑:程序博客网 时间:2024/05/29 21:16
几天弄个程序,需要实现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消息了。


原创粉丝点击