vc 多个菜单 绑定一个 方法 获取对应控件id

来源:互联网 发布:淘宝店铺保证金怎么退 编辑:程序博客网 时间:2024/06/05 17:30

今天碰到这个问题,就修改了系统对应的方法,都改为映射成自己的方法。如下IDM_DOT等几个控件都对应自己的方法OnGGG,但是在OnGGG里面不知道怎么获取是哪一个控件点击的,想着用LOWORD(wParam)可以获取,但是默认生成的方法是没有参数的,那么就在自己的方法里手动加上吧。afx_msg void OnGGG(WPARAM wParam,LPARAM lParam); 可是 跟踪代码发现,虽然点击那几个控件都进入了OnGGG方法,可是LOWORD(wParam)根本不是对应的控件id,用百度搜不到,百度真垃圾,用google搜,搜到的第一篇文章就是解决方法http://blog.sina.com.cn/s/blog_6bb0113e0100q9fw.html,用LOWORD(GetCurrentMessage()->wParam);就可以了。

后来想了想原因,也许是因为这个不是自定义的方法,根本没有地方传什么wParam,lParam参数,又怎么能获取到呢。如果是自定义方法,自己传入对应的参数,肯定就可以获取到了。估计是这样吧,先这么理解吧。

 

BEGIN_MESSAGE_MAP(CGraphicView, CView)//{{AFX_MSG_MAP(CGraphicView)//}}AFX_MSG_MAP// Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)ON_COMMAND(IDM_DOT, OnGGG)ON_COMMAND(IDM_ELLIPSE, OnGGG)ON_COMMAND(IDM_LINE, OnGGG)ON_COMMAND(IDM_RECTANGLE, OnGGG)ON_MESSAGE(WM_USER_MSG,OnSelfMsg)END_MESSAGE_MAP()


 

0 0