MFC对话框
在本章中,我们将介绍对话框. Windows应用程序经常通过对话框与用户通信. CDialog类提供了用于管理对话框的界面. Visual C ++对话框编辑器可以轻松设计对话框并创建对话框模板资源.
- 创建对话框对象是一个两阶段操作 :
- 构造对话框对象.
- 创建对话窗口.
让我们一起来看看通过创建一个新的Win32项目进入一个简单的例子.
第1步 : 打开Visual studio并单击File → 新的 → 项目菜单选项.
第2步 : 您现在可以看到New Project对话框.
第3步 : 从左侧窗格中,选择Templates → Visual C ++ → Win32.
第4步 : 在中间窗格中,选择Win32 Project.
步骤5 : 在”名称”字段中输入项目名称”MFCDialogDemo”,然后单击”确定”继续.您将看到以下对话框.
第6步 : 单击下一步.
步骤7 : 选择上面给出的对话框中显示的选项,然后单击Finish.
第8步 : 创建一个空项目.
步骤9 : 要使其成为MFC项目,请右键单击项目并选择”属性”.
第10步 : 在左侧部分中,单击”配置属性”和”rarr”;一般.
步骤11 : 在”项目默认值”部分中选择”在共享DLL中使用MFC”选项,然后单击”确定”.
步骤12 : 添加新的源文件.
步骤13 : 右键单击Project并选择Add → 新项目.
步骤14 : 在模板部分,单击C ++文件(.cpp)
第15步 : 将名称设置为示例,然后单击添加.
步骤16 : 要创建一个应用程序,我们需要添加一个类并从MFC的CWinApp派生它.
#include <afxwin.h>class CExample : public CWinApp {
public:
BOOL InitInstance();
};
创建对话框
步骤1 : 要创建对话框,请右键单击解决方案资源管理器中的”资源文件”文件夹,然后选择”添加&rarr”;资源.
第2步 : 在”添加资源”对话框中,选择”对话框”,然后单击”新建”.
步骤3 : 在实际以编程方式创建对话框之前,需要进行一些准备.
步骤4 : 首先可以手动将对话框创建为文本文件(在资源文件中).
步骤5 : 您现在可以看到在资源文件下创建的MFCDialogDemo.rc文件.
第6步 : 资源文件在设计器中打开.同样可以作为文本文件打开.右键单击资源文件并选择打开方式.
第7步 : 选择源代码(文本)编辑器,然后单击添加按钮.
第8步 : 返回设计器并右键单击对话框并选择Properties.
第9步 : 您需要从众多选项中选择.
步骤10 : 与大多数其他控件一样,必须标识一个对话框.对话框的标识符(ID)通常以IDD_开头,让我们将ID更改为IDD_EXAMPLE_DLG.
对话框位置
对话框必须”物理上”位于应用程序上.因为对话框通常是作为其他控件的父对象创建的,所以它的位置取决于它与父窗口或桌面的关系.
如果你查看和属性窗口,你会看到两个字段,X Pos和Y Pos.
- X是显示器左边框到对话框左边框的距离.
- Y是从显示器顶部边框到对话框顶部边框的距离.
默认情况下,这些字段设置为零.您也可以如上所示进行更改.
如果将这两个尺寸指定为0,则会设置对话框的左边框和上边框,使对象显示在中间 – 中间屏幕.
对话框尺寸
对话框的尺寸是指其宽度和高度.您可以在设计器窗口中借助鼠标调整宽度和高度.
您可以在状态栏上看到宽度和高度的变化.
对话框方法
使用的基类用于在屏幕上显示对话框的是CDialog类.要创建一个对话框,我们需要从CDialog派生一个类. CDialog类本身提供了三个构造函数,如下所示;
CDialog();CDialog(UINT nIDTemplate, CWnd* pParentWnd = NULL);
CDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
让我们创建另一个类CExampleDlg并从CDialog派生它.我们将实现其默认构造函数析构函数,如下面的代码所示.
class CExampleDlg : public CDialog {public:
enum { IDD = IDD_EXAMPLE_DLG };
CExampleDlg();
~CExampleDlg();
};
CExampleDlg::CExampleDlg():CDialog(CExampleDlg::IDD) {
}
CExampleDlg::~CExampleDlg() {
}
我们需要在CExample :: InitInstance()方法上实例化这个对话框,如下面的代码所示.
BOOL CExample::InitInstance() {CExampleDlg myDlg;
m_pMainWnd = &myDlg;
return TRUE;
}
模态对话框
有两种类型的对话框和减号; 无模式和模态.模态和无模式对话框因创建和显示它们的过程而不同.
无模式对话框
- 对于无模式对话框,您必须在对话框类中提供自己的公共构造函数.
- 要创建无模式对话框,请调用您的公共构造函数,然后调用对话框对象的Create成员函数来加载对话框资源.
- 您可以在构造函数调用期间或之后调用Create.如果对话框资源具有WS_VISIBLE属性,则会立即显示对话框.
- 如果不是,则必须调用其ShowWindow成员函数.
模态对话
- 创建模态对话框框,调用在CDialog中声明的两个公共构造函数之一.
- 接下来,调用对话框对象的 DoModal 成员函数来显示对话框并管理与其的交互,直到用户选择确定或取消.
- DoModal的这种管理是使对话框模态化的原因.对于模态对话框,DoModal加载对话框资源.
步骤1 : 要将对话框显示为模态,请在CExample :: InitInstance()事件中使用对话框变量&minus调用DoModal()方法;
BOOL CExample::InitInstance() {CExampleDlg myDlg;
m_pMainWnd = &myDlg;
myDlg.DoModal();
return TRUE;
}
第2步 : 以下是Example.cpp文件的完整实现.
#include <afxwin.h>#include "resource.h"
class CExample : public CWinApp {
public:
BOOL InitInstance();
};
class CExampleDlg : public CDialog {
public:
enum { IDD = IDD_EXAMPLE_DLG };
CExampleDlg();
~CExampleDlg();
};
CExampleDlg::CExampleDlg():CDialog(CExampleDlg::IDD) {
}
CExampleDlg::~CExampleDlg() {
}
BOOL CExample::InitInstance() {
CExampleDlg myDlg;
m_pMainWnd = &myDlg;
myDlg.DoModal();
return TRUE;
}
CExample MyApp;
第3步 : 编译并执行上面的代码时,您将看到以下对话框.
基于对话框的应用程序
Microsoft Visual Studio提供了一种更简单的方法来创建主要基于对话框的应用程序.以下是使用Visual Studio中可用的项目模板创建对话框基础项目的步骤;
第1步 : 打开Visual studio并单击File → 新的 → 项目菜单选项.您可以看到New Project对话框.
第2步 : 从左侧窗格中,选择Templates → Visual C ++ → MFC.
第3步 : 在中间窗格中,选择MFC应用程序.
步骤4 : 在”名称”字段中输入项目名称”MFCModalDemo”,然后单击”确定”继续.您将看到以下对话框.
第5步 : 单击下一步.
步骤6 : 选择上面对话框中显示的选项,然后单击Next.
第7步 : 检查您在对话框中选择的所有选项,如最大化和最小化框,然后单击下一步.
步骤8 : 单击下一步.
步骤9 : 它将生成这两个类.您可以更改类的名称,然后单击”完成”.
步骤10 : 您现在可以看到MFC向导默认创建此对话框和项目文件.
步骤11 : 当您运行此应用程序时,您将看到以下输出.
以上是 MFC对话框 的全部内容, 来源链接: utcz.com/a/127794.html