MFC对话框弹出上下文菜单并响应命令

简介:
主菜单在App里创建,主菜单响应函数不能在普通类中响应。
对话框中的右键菜单,如果把对话框指针传进去。
则右键菜单命令可以在对话框类中实现。
1.新建sdi程序。
添加对话框资源IDD_DIALOG1
关联类CDlg
添加菜单资源IDR_MENU1
2.主菜单的命令无法在对话框类中响应。
虽然可以添加响应函数,但是无法响应。
谁知道请告诉我,谢谢。
因为主菜单在App中创建,如图:
如果有需求,可以用通吃的方法,向对话框发自定义消息。
3.对话框中的右键菜单(上下文菜单)的命令响应函数,
可以写在对话框类中,条件是创建菜单的时候把对话框类指针传进去。
4.以对话框类为父窗口创建的菜单,命令响应函数可以写在对话框类中,
也可以写在其他如MainFrame,App,View类中。
新手需要源码,留下邮箱索取。
复制代码
void CDlg::OnContextMenu(CWnd*  /* pWnd */, CPoint  /* point */)
{
     //  TODO: 在此处添加消息处理程序代码
    CMenu   menu;    // 定义下面要用到的cmenu对象
    menu.LoadMenu(MAKEINTRESOURCE(IDR_MENU1)); // 装载自定义的右键菜单 
    CMenu   *pContextMenu=menu.GetSubMenu( 0);  // 获取第一个弹出菜单,所以第一个菜单必须有子菜单 
    CPoint point1; // 定义一个用于确定光标位置的位置  
    GetCursorPos(&point1); // 获取当前光标的位置,以便使得菜单可以跟随光标  
    pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point1.x,point1.y,
         this);  // 把对话框类指针传进去
}

void CDlg::OnDlg()
{
     //  TODO: 在此添加命令处理程序代码
    AfxMessageBox( " menu dlg ");
    Invalidate(); //  这是我最终的目标,右击菜单执行完后刷新。
}
复制代码




    本文转自wenglabs博客园博客,原文链接: http://www.cnblogs.com/greatverve/archive/2012/11/21/mfc-dlg-menu-cmd.html ,如需转载请自行联系原作者


相关文章
|
4月前
[MFC] A对话框调用B对话框
[MFC] A对话框调用B对话框
17 0
|
10月前
|
程序员 Windows
【windows编程之对话框】对话框原理,对话框的创建
【windows编程之对话框】对话框原理,对话框的创建
|
Windows
CWnd::OnContextMenu函数(右键单击弹出快捷菜单)
CWnd::OnContextMenu函数(右键单击弹出快捷菜单)
57 0
|
容器
对话框和窗口的区别
“窗口”与“对话框”有什么区别?                       计算机类稿件的一大特点是文中的图很多。在这大量的图中,系统软件或应用软件的“界面”、“窗口”、“对话框”、“提示框”等的截图又占了很大的比例。
4216 0
|
测试技术
MFC中为菜单或按钮添加快捷键功能
1、新建一快捷键资源,ACCELERATOR,关联相应的ID号,下图所示中,其中,第一个ID为自定义快捷键ID,按CTRL+R,此时响应该ID以应的消息响应函数, 第二个ID为菜单ID,此时按CTRL+V,调出ID_NETWORK_PING菜单对应的响应函数。
1315 0
在MFC对话框中添加状态栏
如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图)。 1. 首先,打开在资源视图的String Table并添加两个ID:ID_INDICATOR_NISH 和ID_INDICATOR_TIME,如下图 2.
1132 0
|
索引 小程序 容器
小程序 — 选项卡
前言:在小程序中实现选项卡的功能。 GitHub:https://github.com/Ewall1106/miniProgramDemo 先看一下最终的实现效果: 小程序实现选项卡功能 1、页面结构 使用wx:for对list数组进...
1381 0
|
图形学 Windows
Unity调用Windows对话框保存时另存为弹框
Unity开发VR之Vuforia 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar ...
1219 0
|
安全
OCX控件避免弹出安全警告的类
1.要加一个头文件:         #include 2.在控件头文件中加入: 1 DECLARE_INTERFACE_MAP()2 BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety)3 STDMETHOD(GetInter...
879 0