mfc窗口置顶_mfc treecontrol

mfc窗口置顶_mfc treecontrol版权声明:www.gudianxiaoshuo.com原创文章版权–古典小说网         WM_CONTEXTMENU消息用来响应鼠标右键消息,它响应的不是鼠标右键按下消息,也不是鼠标右键弹起消息而是鼠标右键依次按下弹起后触发的消息。          因此,若程序还响应了鼠标右键按下的消息OnRButtonDown,且在此响应函数中有模特对话

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用



 

         WM_CONTEXTMENU消息 用来响应鼠标右键消息, 它响应的不是鼠标右键按下消息,也不是鼠标右键弹起消息

而是鼠标右键 依次按下弹起后触发的消息。

 

         因此,若程序还响应了鼠标右键按下的消息OnRButtonDown,且在此响应函数中有模特对话框出现的话,则不会响应WM_CONTEXTMENU消息。

         比如,有AfxMessageBox(L”Right Down”); 模特对话框出现在右键按下响应函数中, 则关闭此模特对话框后,不在响应右键菜单消息。

 

         原因在于:

         右键菜单 是在右键依次按下弹起时才被触发的。

        右键按下, 模特对话框产生时,消息只被发送到了模特对话框,因此,鼠标弹起消息未被发送到主窗口,因此,不会响应右键菜单消息。

 

        但是,如果在右键弹起响应函数OnRButtonUp中响应模特对话框消息的话, 右键菜单消息 不会被影响。

        原因是: 此时鼠标按下、弹起消息均已被发送到了主窗口,因此程序在关闭模特对话框后,仍会响应右键菜单消息。

 

  1. OnContextMenu(CWnd* pWnd, CPoint point)  
  2. {  
  3.     CPoint pt=point;  
  4.     CMenu menu;  
  5.     CMenu* PopupMenu=NULL;  
  6.   
  7.     ScreenToClient(&pt);  
  8.   
  9.     //加载菜单  
  10.     menu.LoadMenu(IDR_IMAGEVIEW);  
  11.   
  12.     //子菜单项  
  13.     //右键点击 弹出此子菜单项  
  14.     PopupMenu=menu.GetSubMenu(3);  
  15.     PopupMenu->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN,point.x,point.y,this);  
  16. }  
mfc窗口置顶_mfc treecontrol

OnContextMenu(CWnd* pWnd, CPoint point)
{
	CPoint pt=point;
	CMenu menu;
	CMenu* PopupMenu=NULL;

	ScreenToClient(&pt);

	//加载菜单
	menu.LoadMenu(IDR_IMAGEVIEW);

	//子菜单项
	//右键点击 弹出此子菜单项
	PopupMenu=menu.GetSubMenu(3);
	PopupMenu->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN,point.x,point.y,this);
}

 

 参考资料:

http://topic.csdn.net/t/20061114/18/5157800.html 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181090.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号