前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MFC简介_java void main

MFC简介_java void main

作者头像
全栈程序员站长
发布2022-09-21 11:11:50
5680
发布2022-09-21 11:11:50
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

版权声明:www.gudianxiaoshuo.com 原创文章版权 — 古典小说网

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

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

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

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

原因在于:

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

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

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

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

[cpp] view plain copy print ?

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

代码语言:javascript
复制
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.cn/170377.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档