Windows图形界面(GUI)-MFC-C/C++ - Dialog

devtools/2024/10/22 11:07:44/
  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

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 <afxwin.h>
    #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 <afxwin.h>
    #include <afxdialogex.h>
    #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_TIMEenum { IDD = IDD_DIALOG_MAIN };
    #endifprotected: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()


http://www.ppmy.cn/devtools/87650.html

相关文章

【前端 11】初探DOM

JavaScript 对象 - DOM 初探 在Web开发中&#xff0c;DOM&#xff08;Document Object Model&#xff0c;文档对象模型&#xff09;是一个至关重要的概念。它不仅仅是一个API&#xff0c;更是Web页面与JavaScript代码之间的桥梁&#xff0c;允许开发者通过编程的方式动态地访问…

全网最全最新100道C++面试题:80-100

前述&#xff1a;本文初衷是为了总结本人在各大平台看到的C面经&#xff0c;我会在本文持续更新我所遇到的一些C面试问题&#xff0c;如有错误请一定指正我。新建立了一个收集问答的仓库&#xff0c;欢迎各位小伙伴来更新鸭interview_experience: 本仓库初衷是想为大家提供一个…

HJ87密码等级

这个题目就是细心处理一下就行&#xff0c;比较简单 #include <ctype.h> #include <stdio.h> #include <stdbool.h>void PrintLevel(unsigned int score) {if(score > 90){printf("VERY_SECURE");}else if(score > 80){printf("SECURE…

VB中的LINQ(Language Integrated Query)的定义及其用法

在VB&#xff08;Visual Basic&#xff09;中&#xff0c;LINQ&#xff08;Language Integrated Query&#xff09;是一个强大的查询功能&#xff0c;它允许你以声明性的方式查询和操作多种类型的数据源&#xff0c;包括数组、集合、XML 文档、数据库等。LINQ 提供了统一的查询…

传统自然语言处理(NLP)与大规模语言模型(LLM)详解

自然语言处理&#xff08;NLP&#xff09;和大规模语言模型&#xff08;LLM&#xff09;是理解和生成人类语言的两种主要方法。本文将介绍传统NLP和LLM的介绍、运行步骤以及它们之间的比较&#xff0c;帮助新手了解这两个领域的基础知识。 传统自然语言处理&#xff08;NLP&…

浦东五大环保装修公司推荐:为您打造理想家居

在浦东&#xff0c;想要找到一家既环保又能满足您对理想家居所有期待的装修公司并非易事。但别担心&#xff0c;以下为您推荐五家出色的环保装修公司。 1.即住空间装饰 即住空间装饰&#xff0c;高效省心精工是其突出特点&#xff0c;同时他们坚定践行“高品质不等于高价格&a…

Python 爬虫入门(一):从零开始学爬虫 「详细介绍」

Python 爬虫入门&#xff08;一&#xff09;&#xff1a;从零开始学爬虫 「详细介绍」 前言1.爬虫概念1.1 什么是爬虫&#xff1f;1.2 爬虫的工作原理 2. HTTP 简述2.1 什么是 HTTP&#xff1f;2.2 HTTP 请求2.3 HTTP 响应2.4 常见的 HTTP 方法 3. 网页的组成3.1 HTML3.2 CSS3.…

3D魔方游戏制作lua迷你世界

--3D魔方 --星空露珠工作室 --核心脚本来自负负 --1:xy 2:yx 3:xz 4:zx 5:yz 6:zy --4000,0-3 3995-0,3 local trn{ {{5,2},{3,1},{1,2},{1,3},{4,0},{2,2}}, {{3,0},{5,3},{1,3},{1,2},{2,3},{4,1}}, {{4,2},{2,1},{1,1},{1,0},{3,3},{5,1}}, {{2,0},{4,3},{1,0},{1,1},{5,0},…