MFC中简单上位机框架搭建

2023-11-11

项目源码下载地址:http://download.csdn.net/download/zhuzemin45/12005663

文章主要分三个部分:

一、非模态(模态)对话框创建

二、标签页创建

三、Button调用多标签页的非模态对话框

 

1、非模态对话框创建

1、在资源视图Dialog中插入新的Dialog,(可以自行修改对话框的ID,后边会用到该对话框ID)右键新的对话框,添加类,类名为:CDlgXXXX(自己命名)。

2、在主对话框中设定对应button按键,并双击生成事件代码,后边显示对话框时在该控件中添加对应程序代码即可。

3、在主对话框的 Dlg.cpp Dlg.h 代码中引用对应新建类的头文件 #include “DlgXXXX.h(该头文件即为新建对话框类的头文件)

4、在主对话框Dlg.h 代码中添加变量:

private:

  CDlgXXXX dlgxxxx;(自己命名即可)

5、在主对话框的Dlg.cpp 初始化代码部分添加 dlg.Create(IDD_EXEC);(后边参数即为前边新添加对话框的ID

6、在主对话框对应的按键程序中添加:dlgxxxx.ShowWindow(SW_SHOWNORMAL);(显示)

 

2、标签页创建步骤:

1、在Dialog中,添加Tab Control 控件,并将控件调整到合适大小。

2、复制TabSheet.cppTabSheet.h到项目文件中,并添加到项目。

3、在资源视图Dialog中插入新的Dialog,修改属性,将Border改为“None”,将Style改为“Child”。

4、重复第三步。(几个标签页就添加几个Dialog

5、分别将新插入的Dialog添加类,类名分别为Cdlg1 Cdlg2

6、在主对话框的Dlg.cpp .h 文件中引用#include “CDlg1.h“#include “CDlg2.h“。(注意:这里的.cpp .h 指的是标签页所在,否则报错:语法错误: 缺少“;”(在标识符“dlg2_1”的前面)等错误

7、分别将新插入的DialogTab Control 控件添加变量dlg1dlg2m_tab

*注意*1 Tab Control 添加变量时应将变量类型改为CTabSheet,其他都是正常添加即可。

*注意*2:如果是在非模态对话框中添加标签页初始化部分略有差异,请参照第七页。

8、在主对话框的Dlg.cpp 初始化代码部分添加 :(创建)

       //两个参数分别表示:添加的Dialog的变量名和对应对话框的ID

m_tab.AddPage(TEXT(“系统设置”), &dlg1, IDD_DIALOG1);

m_tab.AddPage(TEXT("系统管理"), &dlg2, IDD_DIALOG2);

 9、在主对话框的Dlg.cpp 初始化代码部分添加 (显示)

m_tab.Show();

// m_Tab 指的是Tab Control 控件的变量名。

 

3、Button调用 TabControl 控件(多标签页)的非模态对话框步骤:(注意标签页初始化问题处理)

1、参考创建非模态对话框。

2、参考创建标签页。在新非模态对话框中添加tabcontrol控件,只需要按照操作进行到第7步,紧接着初始化部分参照本页第3步。

3、在tab control控件所在的Dialog中右键 ->类向导->虚函数-> OnInitDialog 双击。

在对应的非模态对话框的 .cpp 代码初始化部分添加初始化代码,我这里是:

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MFC中简单上位机框架搭建 的相关文章

  • CLR 2.0 与 4.0 性能比较?

    如果在 CLR 4 0 下运行 为 CLR 2 0 编译的 NET 程序会运行得更快吗 应用程序配置
  • GetType() 在 Type 实例上返回什么?

    我在一些调试过程中遇到了这段代码 private bool HasBaseType Type type out Type baseType Type originalType type GetType baseType GetBaseTyp
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • 对 std::vector 进行排序但忽略某个数字

    我有一个std vector
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐