SDI-通过选定的弹出菜单项显示对话框

Posted

技术标签:

【中文标题】SDI-通过选定的弹出菜单项显示对话框【英文标题】:SDI-display a dialog via a seleted popup menu item 【发布时间】:2011-07-09 11:47:21 【问题描述】:

我有一个 SDI 应用程序,我想在选择一个弹出菜单项后显示一个对话框来调用它 我的对话框类定义为:

class Dialog:public CDialogEx
;

还有一个名为 OnCallDlg 的视图类的添加函数执行以下简单操作:

void CAppView::OnCallDlg()

   Dialog d;
   d.DoModal();

但是当我用鼠标右键单击视图时,在弹出菜单中选择一个项目后没有任何显示。

【问题讨论】:

您是否处理上下文菜单中所选项目对应的WM_COMMAND 消息?你在哪里调用OnCallDlg 函数? 是的,我通过 add-function 向导和 CAppView 类执行此操作,调试显示我到达调用 DoModal,只是它返回我 -1。顺便说一句,我正在使用 VS10。 你错过了msdn.microsoft.com/en-us/library/6wb9s9ah.aspx中的第2步 是的,正如 Hans 所说,您忘记实际创建要显示的对话框。 【参考方案1】:

您必须使用以下模式将 ID 附加到对话框:

对话 d(ID_DIG); d.doModal();

【讨论】:

以上是关于SDI-通过选定的弹出菜单项显示对话框的主要内容,如果未能解决你的问题,请参考以下文章

Android contextmenu 设置布局和大小

更改 GWT 子菜单弹出位置

MFC 工具栏中的弹出菜单

MFC单击菜单项如何弹出对话框?

MFC中实现点击菜单的选项弹出一个对话框

关于MFC主菜单和右键弹出菜单