有两种方法,一种是利用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消息了。