赞
踩
目录
流程
打开资源视图:在Visual Studio中,右键点击资源文件夹(通常是Resource Files
),选择“添加” -> “资源”。
添加对话框资源:在弹出的对话框中选择“Dialog”,然后点击“新建”。
设计对话框:在资源编辑器中,你可以拖放控件到对话框上,如按钮、文本框、列表框等。
拓展
资源ID:每个对话框都有一个唯一的资源ID,用于在代码中引用。
对话框编辑器:用于可视化地设计和布局对话框。
流程
打开属性窗口:选中对话框模板,然后在属性窗口中修改其属性。
修改基本属性:如标题(Caption)、字体、样式(Style)、边框(Border)等。
设置对话框样式:如设置为“下拉式”(Child)、“弹出式”(Popup)或“无边框”(None)。
拓展
对话框样式:控制对话框的外观和行为,如是否可以调整大小、是否有标题栏等。
对话框边框:决定对话框的边框类型,如是否有系统菜单、最小化/最大化按钮等。
对话框字体:设置对话框及其控件的字体。
打开对话框资源:在Visual Studio中,双击对话框资源文件(.dlg
)以打开对话框编辑器。
添加对话框类:右键点击对话框编辑器中的对话框,选择“添加类”。
配置类向导:在类向导中,输入类名(通常以CDialog
为基类),选择基类(通常是CDialogEx
或CDialog
),然后点击“完成”。
基类选择: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_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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。