Windows图形界面(GUI)-MFC-C/C++ - Dialog
创始人
2024-11-26 07:04:43
0
  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

Dialog

创建对话框模板

设置对话框属性

创建对话框对象

对话框生命周期

示例代码


Dialog

创建对话框模板

  • 流程

    • 打开资源视图:在Visual Studio中,右键点击资源文件夹(通常是Resource Files),选择“添加” -> “资源”。

    • 添加对话框资源:在弹出的对话框中选择“Dialog”,然后点击“新建”。

    • 设计对话框:在资源编辑器中,你可以拖放控件到对话框上,如按钮、文本框、列表框等。

  • 拓展

    • 资源ID:每个对话框都有一个唯一的资源ID,用于在代码中引用。

    • 对话框编辑器:用于可视化地设计和布局对话框。

设置对话框属性
  • 流程

    • 打开属性窗口:选中对话框模板,然后在属性窗口中修改其属性。

    • 修改基本属性:如标题(Caption)、字体、样式(Style)、边框(Border)等。

    • 设置对话框样式:如设置为“下拉式”(Child)、“弹出式”(Popup)或“无边框”(None)。

  • 拓展

    • 对话框样式:控制对话框的外观和行为,如是否可以调整大小、是否有标题栏等。

    • 对话框边框:决定对话框的边框类型,如是否有系统菜单、最小化/最大化按钮等。

    • 对话框字体:设置对话框及其控件的字体。

创建对话框对象
  • 打开对话框资源:在Visual Studio中,双击对话框资源文件(.dlg)以打开对话框编辑器。

  • 添加对话框类:右键点击对话框编辑器中的对话框,选择“添加类”。

  • 配置类向导:在类向导中,输入类名(通常以CDialog为基类),选择基类(通常是CDialogExCDialog),然后点击“完成”。

  • 基类选择:CDialogEx提供了更多的样式和功能,而CDialog是更传统的基类。

对话框生命周期
  • 创建对话框:使用DoModal()Create()函数创建对话框。

  • 显示对话框:使用ShowWindow()函数显示对话框。

  • 关闭对话框:用户点击“确定”或“取消”按钮时,对话框会关闭。

  • 销毁对话框:对话框关闭后,需要手动销毁或由系统自动销毁。

示例代码
  • Visual Studio 2019

  • 创建空项目

  • 设置静态MFC使用 - 子系统为窗口

  • 添加资源文件rc

  • 添加dialog对话框

  • 选中对话框添加对应类

  • #pragma once #include  #include "CMainDlg.h"  class CMyApp : public CWinApp { public: 	virtual BOOL InitInstance(); };  extern CMyApp myApp;  #include "CMyApp.h"  CMyApp myApp;  BOOL CMyApp::InitInstance() { 	CMainDlg dlg_Main; 	m_pMainWnd = &dlg_Main; 	dlg_Main.DoModal(); 	return TRUE; }  #pragma once #include  #include  #include "resource.h"  // CMainDlg 对话框  class CMainDlg : public CDialogEx { 	DECLARE_DYNAMIC(CMainDlg)  public: 	virtual BOOL PreTranslateMessage(MSG* pMsg) 	{ 		if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE) 		{ 			return TRUE; 		}  		return CDialogEx::PreTranslateMessage(pMsg); 	}  public: 	CMainDlg(CWnd* pParent = nullptr);   // 标准构造函数 	virtual ~CMainDlg();  // 对话框数据 #ifdef AFX_DESIGN_TIME 	enum { IDD = IDD_DIALOG_MAIN }; #endif  protected: 	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持  	DECLARE_MESSAGE_MAP() };   // CMainDlg.cpp: 实现文件 #include "CMainDlg.h"    // CMainDlg 对话框  IMPLEMENT_DYNAMIC(CMainDlg, CDialogEx)  CMainDlg::CMainDlg(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_DIALOG_MAIN, pParent) {  }  CMainDlg::~CMainDlg() {   }  void CMainDlg::DoDataExchange(CDataExchange* pDX) { 	CDialogEx::DoDataExchange(pDX); }   BEGIN_MESSAGE_MAP(CMainDlg, CDialogEx) 	 END_MESSAGE_MAP()

相关内容

热门资讯

5分钟理解!hhpoker有没... 【福星临门,好运相随】;5分钟理解!hhpoker有没有作比,wepoker安装教程,软件教程(有挂...
第七分钟得知!广东雀神挂件怎么... 第七分钟得知!广东雀神挂件怎么样(外挂透视)原来真的有挂软件(传授开挂神器);亲真的是有正版授权,小...
练习外挂!德州hhpoker是... >>您好:德州hhpoker是真的吗确实是有挂的,很多玩家在这款德州hhpoker是真的吗游戏中打牌...
第九分钟讲究!牵手辅助器,三哥... 第九分钟讲究!牵手辅助器,三哥玩辅助器,德州论坛(有挂技术)-哔哩哔哩;无需打开直接搜索加薇1367...
第7分钟发现!闲来辅助最新版下... 第7分钟发现!闲来辅助最新版下载,hhpoker开挂教程,曝光教程(新版有挂)-哔哩哔哩;闲来辅助最...
3分钟透视!开心泉州小程序辅助... 3分钟透视!开心泉州小程序辅助哪里查看(外挂透视)原来确实有挂神器(分享开挂辅助器);1、点击下载安...
秘籍外挂!hhpoker辅助挂... 大家好,今天小编来为大家解答hhpoker辅助挂是真的吗这个问题咨询软件客服可以免费测试直接加微信(...
九分钟讲解!皇豪互娱辅助怎么设... 九分钟讲解!皇豪互娱辅助怎么设置,大菠萝免费辅助,2026新版教程(竟然有挂)-哔哩哔哩【无需打开直...
6分钟晓得!we-poker辅... 6分钟晓得!we-poker辅助,pokemmo脚本辅助,必赢方法(讲解有挂)-哔哩哔哩,是用手机号...
第一分钟发现!微友约局辅助(外... 第一分钟发现!微友约局辅助(外挂透视)原来有挂下载(分享开挂辅助器);小薇(透视辅助)致您一封信;亲...