baidu_25665887
baidu_25665887
采纳率75%
2015-01-28 07:58

MFC中怎么设置单击菜单弹出对话框?

已采纳

举个例子,在菜单栏中单击“Setting”菜单下,“Hardware setting”子菜单中“Setting the printer”项(ID为ID_HARDWARESETTING_SETTINGTHEPRINTER),要弹出对话框“PrinterHWSetting”(ID为IDD_PrinterHWSetting)

对话框继承CDialog类,类名PrinterHWSetting,h文件和cpp文件都自动生成好了。
子菜单中的那一项我也创建好事件处理程序了,CMainFrame::OnHardwaresettingSettingtheprinter()
在主界面文件MainFrm.cpp中添加了如下代码:

void CMainFrame::OnHardwaresettingSettingtheprinter(){
PrinterHWSetting dlg;
dlg.DoModal(); }

最后生成,没有报错,运行程序也正常运行。但是我点开子菜单中的Setting the Printer项的时候,就是弹不出那个对话框,请问这是怎么回事?

我创建的是单文档程序,环境为VS2010

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 6年前

    在你的代码开头加上一行
    MessageBox(0, "hello", NULL, MB_OK);
    或者下一个断点,总之看看你的OnHardwaresettingSettingtheprinter()有没有被执行。

    如果没有,用ClassWizard重新来映射一次。

    点赞 评论 复制链接分享
  • u010835448 u010835448 6年前

    在菜单按钮的响应函数里面添加一段代码:先定义你所要弹出对话框的类的一个对象,比如你的对话框是CSDlg,那就是
    {CSDlg dlg;
    dlg.DoModal;
    }

    点赞 1 评论 复制链接分享
  • yucong21sy 小菜一碟dl 6年前

    可以按照楼上的生成模态的对话框,也可以用dlg.Create()来生成非模态的,意义看下孙鑫的深入详解,有详细介绍。

    点赞 评论 复制链接分享

相关推荐