博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC对话框弹出上下文菜单并响应命令
阅读量:6085 次
发布时间:2019-06-20

本文共 983 字,大约阅读时间需要 3 分钟。

主菜单在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();
//
 这是我最终的目标,右击菜单执行完后刷新。
}
url:

转载于:https://www.cnblogs.com/greatverve/archive/2012/11/21/mfc-dlg-menu-cmd.html

你可能感兴趣的文章
T-sql语句查询执行顺序
查看>>
[MODx] 5. WayFinder
查看>>
使用CSS3实现超炫的Loading(加载)动画效果
查看>>
servlet中 getRealPath deprecated(被废弃)
查看>>
自定义图片相册
查看>>
strusts annotation
查看>>
iPhone:动态获取UILabel的高度和宽度
查看>>
arcgis软件集合
查看>>
ZendStudio在kali下无法启动
查看>>
[转载]DBA的特质第一部分:技术
查看>>
c# 读取XML数据
查看>>
Android程序Crash时的异常上报
查看>>
poj 1328 Radar Installation
查看>>
[家里蹲大学数学杂志]第392期中山大学2015年泛函分析考博试题回忆版
查看>>
eclipse创建多模块maven工程小结
查看>>
一些常用的c++系统函数
查看>>
Codeforces Round #296 (Div. 1) B. Clique Problem 贪心
查看>>
奇怪吸引子---LorenaMod2
查看>>
扩展Log4j支持JNDI数据源
查看>>
拉勾网董事长许单单:凡是让你痛苦的,都是让你成长的
查看>>