背景

当前做的APP有菜单栏,菜单栏有一项需要对下位机相关参数进行设置,则必须弹出一个窗口来实现设置操作。本篇即对点击菜单栏生成新的窗口,在新的窗口内完成相应计划后结束新窗口并返回原窗口的方法进行简述。菜单栏的实现可见另一篇博客Visual studio C++ MFC之Menu editor。

正文

  1. 创建一个新窗口
    在资源视图右击添加Dialog资源,会生成一个新的Dialog,该DialogID可自行定义,接着在该Dialog上右击添加类,类名自定义,本次类名为CANInterface,之后会生成两个文件ANInterface.cppANInterface.h,并且生成了新的窗口。

  2. 在原窗口生成菜单栏单击事件
    另一篇博客Visual studio C++ MFC之Menu editor已详述,生成的代码如下:
void CMenueditortestDlg::OnSettingCaninterface()
{
// TODO: 在此添加命令处理程序代码
// 定义一个新窗口的类CANInterface dlg;
// 调用此函数,则1步骤生成的窗口产生,若是新生成的窗口退出会有一个返回值INT_PTR nRet = dlg.DoModal();TRACE("nRet = %d\n", nRet);switch(nRet){case 1: // do somethingbreak;case 11: // do somethingbreak;default: // do somethingbreak;}
}
  1. 在新窗实现控件操作并返回
    在新窗口类中完成一系列操作就和普通的窗口操作一样,可以添加控件,也可以添加事件,此处即添加一个按钮结束当前窗口,返回到原窗口,代码如下:
void CANInterface::OnBnClickedButtonEnd()
{
// TODO: 在此添加控件通知处理程序代码
// 此处的nRet既是上文所说的新生成的窗口退出的返回值int nRet = 11; // Just any value would do!EndDialog(nRet); // This value is returned by DoModal!
// Do somethingreturn; // Dialog closed and DoModal returns only here!
}

参考链接

  • zhliy0711的专栏的博客C++ MFC 中, 如何按下按钮弹出对话框;
  • MSDN关于CDialog::DoModal的帮助说明文档;
  • MSDN关于CDialog::EndDialog的帮助说明文档。

至此记录完毕
记录时间:2017-2-16
记录地点:深圳WZ

转载于:https://www.cnblogs.com/ChYQ/p/6404421.html

Visual studio C++ MFC之点击按钮(菜单栏)生成新窗口相关推荐

  1. 点击按钮(button)打开新窗口(window)的几种情况

    点击按钮(button)打开新窗口(window) 从事前端制作的朋友都有碰到过,需要点击按钮跳转到另外一个页面.只要用到简单的onclick事件就可以简单实现效果. 方式一:在原来的窗口上打开新窗口 ...

  2. 点击按钮(button)打开新窗口(window)

    从事前端制作的朋友都有碰到过,需要点击按钮跳转到另外一个页面.只要用到简单的onclick事件就可以简单实现效果. 方式一:在原来的窗口上打开新窗口 <input type="butt ...

  3. Visual Studio DOS程序,点击运行后,DOS窗口关闭

    1.问题:如下程序运行完毕之后,DOS窗口关闭了,看不到输出的结果 2.原因:因关闭了当调试停止的时候,自动关闭console窗口的选项. 3.解决方法: Tools->Options-> ...

  4. c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189:

    编译时报下面错误的解决方法 c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error ...

  5. Visual studio C++ MFC的库函数末尾添加“A”和“W”的意义

    背景 在使用Visual studio C++ MFC库函数ModifyMenu(...)函数,在Visual studio自动代码补全里提示没有ModifyMenu(...)这个函数,倒是有Modi ...

  6. Visual Studio中没有为此解决方案配置选中要生成的项目

    Visual Studio中没有为此解决方案配置选中要生成的项目 参考文章: (1)Visual Studio中没有为此解决方案配置选中要生成的项目 (2)https://www.cnblogs.co ...

  7. js 点击按钮打开浏览器新页签,兼容版

    话不多说直接上代码,这是千辛万苦寻来的,帮助需要帮助的人. <html><head>点击按钮打开浏览器新页签</head><body><div o ...

  8. [Visual Studio 2022 C#]使用SplitContainer拆分器让一个Windows窗口秒变多个

    [Visual Studio 2022 C#]使用SplitContainer拆分器让一个Windows窗口秒变多个 从工具箱中添加控件 根据需要设置拆分器的方向 ☑必备:必须设置成[置于底层] 通过 ...

  9. 谷歌浏览器设置点击链接时打开新窗口

    谷歌浏览器设置点击链接时打开新窗口 首先确定自己的google版本信息,找到设置,点击关于Chrome 根据我的google版本,设置点击链接打开新窗口 点击右边的齿轮按钮,进入快捷搜索设置 点击查看 ...

最新文章

  1. pppoe移植到arm上 1.0
  2. java方法criterion_java – JPA Criteria谓词条件
  3. sql共享功能目录无法更改_大企业数据库服务首选!AliSQL这几大企业级功能你不可不知...
  4. 2017c语言自学贴吧,【图片】17年1.9开启我的C语言学习之路—小白篇【c语言吧】_百度贴吧...
  5. ShortcutMapper 是应用程序的键盘快捷键
  6. LeetCode6 Z字形变换
  7. 竞价推广的流程有哪些?
  8. 关于ISI、SCI、EI、IEEE、Elsevier、Springer的区别
  9. 二线城市-太原-程序员真实写照
  10. dubbo中 provider和 comsumer端timeout的设置区别
  11. 三秒钟,我要拿到世界杯所有队伍阵容信息
  12. BUUCTF:LSB
  13. 什么是幻读?以及如何解决幻读?
  14. 香农公式和奈氏准则描述的是同一个东西吗?
  15. java long 0_Java中的long类型和Long类型比较大小
  16. MySQL--函数--使用/示例
  17. 12对胸椎对应体表标志_胸部体表标志详解.ppt
  18. 【三】-硬件木马的分类
  19. js鼠标双击的时候如何屏蔽单击事件呢
  20. [蓝桥杯][算法提高VIP]阮小二买彩票

热门文章

  1. virtualenvvirtualenvwrapper on WindowsUbuntu
  2. Openwrt MiniDLNA 安装方法及 其需要的依赖关系
  3. 数据结构例程——线性表顺序存储的应用
  4. 终极解决方案:Emacs+Slime+Lisp启动错误:Polling /tmp/slime.50
  5. Linux的常用的命令
  6. 成功当选2014年度MVP
  7. MATLAB读取HDF格式的SST数据
  8. PostgreSQL的generate_series函数应用例子
  9. 妙用Windows安全模式执行杀毒
  10. sql server 存储过程 SET NOCOUNT ON?