现在的位置: 首页 > 综合 > 正文

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

2014年09月28日 ⁄ 综合 ⁄ 共 900字 ⁄ 字号 评论关闭

今天碰到这个问题,就修改了系统对应的方法,都改为映射成自己的方法。如下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 commands
	ON_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()

 

抱歉!评论已关闭.