简述vc里响应button控件的lbuttondown事件的三种方法
2009-05-24 13:42
316 查看
好久没更新blog了,自己这段时间里一直东看看,西看看,技术也没什么大的长进,再加上我的那本本出了点问题,拿去修理了,所以现在一直处于蛮颓废的状态。好了,废话少说,总之,自己振奋下吧。
虽然技术没什么长进,还是研究下了vc,vc里想响应按钮的mousedown事件可不是件容易的事情啊,自己还是查了很多资料,并且自己好好研究了一番,现在把我所了解的方法和大家分享下。
一:
从cbutton类派生出一个子类,插入-----类,里面设置下就行了,然后按ctrl+w打开类向导,为你的button设置个变量,在类型里面选你刚才派生类的名字(注意要在你的工程头文件里添加派生类的头文件),然后在在消息映射栏里选择你刚才的派生类,这时在选择相应的事件即可,基本上向导自动操作,除了事件里的代码,基本上代码无需你人为添加。
二:
步骤和方法一是一样的,只不过不要为按钮添加变量,而是你在工程的头文件里手动添加派生类的变量(比如mybutton a;),然后在窗体的初始化代码里添加代码:
a.SubclassDlgItem(你的按钮id,this);
完成子类化设置即可。
三:
前面两种方法都有局限性,无法同时为多个button提供lbuttondown事件,那么我们看下面的方法。重载窗体的PreTranslateMessage方法,添加下面代码,
if(pMsg->hwnd==((CButton*)this->GetDlgItem(IDC_BUTTON1))->m_hWnd && pMsg->message==WM_MOUSEMOVE)
::AfxMessageBox("s");
这样用if或者switch判断,就可以很方便的为多个不同的button提供不同的响应代码。
先写到这里,上面的三种方法我也是花了一晚上的时间才总结出来的,测试环境为vc++6。0 。文章有不妥之处螟害望大家多多指正。
虽然技术没什么长进,还是研究下了vc,vc里想响应按钮的mousedown事件可不是件容易的事情啊,自己还是查了很多资料,并且自己好好研究了一番,现在把我所了解的方法和大家分享下。
一:
从cbutton类派生出一个子类,插入-----类,里面设置下就行了,然后按ctrl+w打开类向导,为你的button设置个变量,在类型里面选你刚才派生类的名字(注意要在你的工程头文件里添加派生类的头文件),然后在在消息映射栏里选择你刚才的派生类,这时在选择相应的事件即可,基本上向导自动操作,除了事件里的代码,基本上代码无需你人为添加。
二:
步骤和方法一是一样的,只不过不要为按钮添加变量,而是你在工程的头文件里手动添加派生类的变量(比如mybutton a;),然后在窗体的初始化代码里添加代码:
a.SubclassDlgItem(你的按钮id,this);
完成子类化设置即可。
三:
前面两种方法都有局限性,无法同时为多个button提供lbuttondown事件,那么我们看下面的方法。重载窗体的PreTranslateMessage方法,添加下面代码,
if(pMsg->hwnd==((CButton*)this->GetDlgItem(IDC_BUTTON1))->m_hWnd && pMsg->message==WM_MOUSEMOVE)
::AfxMessageBox("s");
这样用if或者switch判断,就可以很方便的为多个不同的button提供不同的响应代码。
先写到这里,上面的三种方法我也是花了一晚上的时间才总结出来的,测试环境为vc++6。0 。文章有不妥之处螟害望大家多多指正。
相关文章推荐
- vc++ 中实现 易语言 响应事件方法
- Android Button 的单击事件的三种响应方法
- VC下线程同步的三种方法(互斥、事件、临界区)/(转)
- VC下线程同步的三种方法(互斥、事件、临界区)
- VC下线程同步的三种方法(互斥、事件、临界区)
- VC下线程同步的三种方法(互斥、事件、临界区)
- Android Button 的单击事件的三种响应方法
- VC下线程同步的三种方法(互斥、事件、临界区)
- VC下线程同步的三种方法(互斥、事件、临界区)
- VC下线程同步的三种方法(互斥、事件、临界区)
- Android(SDK 1.5) Button 的单击事件的三种响应方法
- Android(SDK 1.5) Button 的单击事件的三种响应方法
- VC++ 中响应鼠标悬停事件的简单方法(2005-8-10)
- VC++ 中响应鼠标悬停事件的简单方法(2005-8-10)
- VC中使用CRichEdit不能响应鼠标事件解决方法
- 应用层vc实现三种文件监视方法 下面介绍三种非驱动实现文件监视的方法。 =============================================================
- ListView不能响应itemclick事件的解决方法
- Qt键盘事件--组合键响应方法
- 首先是点击事件在不同的布局层次中传递的。 理解Down事件再哪个层次被消费(拦截),后续的Move、Up的点击事件如何传递。 其中ViewGroup中onInterceptTouchEvent方法
- 监控特定文件夹的事件:三种解决方法汇总