基于对话框的应用程序入门指南 - 第一部分






4.66/5 (84投票s)
2000 年 6 月 6 日

854232
一步一步的教程,展示如何使用 MFC 创建您的第一个 Windows 程序。
引言
在本教程中,我们将创建一个简单的对话框应用程序。我们将使用按钮、编辑框、组合框、列表框和静态文本控件来开发我们的项目。我们将通过将这些控件添加到对话框框,使用 ClassWizard
将这些控件链接到变量,并处理控件发送的消息的过程。
我假设您精通 C++,并且是 Visual C++ 的绝对初学者。您需要做的第一件事是加载您的 Visual C++ 6 软件并创建一个新项目。
创建新项目
要创建新项目,请先在 Visual C++ 6 窗口的菜单中单击文件,然后单击新建。
视图应如下面的图像所示
在项目名称中写入Dialog1,然后从可用向导列表中选择MFC 应用程序向导(exe),然后单击确定。 MFC 应用程序向导将启动。
- 在向导的步骤 1 中,单击基于对话框选项,然后单击下一步。
- 在步骤 2 和 3 中,接受默认设置,只需单击下一步即可。
- 在步骤 4 中,单击完成,然后您将获得项目信息。单击确定。
现在向导已经为您创建了一个简单的空对话框应用程序。您需要进行一些更改并编写必要的代码来根据您的规范自定义您的应用程序。
设计对话框
单击文本TODO :在此处放置对话框控件,然后按Delete。这将删除不需要的文本标签。
单击对话框框的右下角边缘。框本身边缘周围会出现一个矩形。使用下面的大小调整点调整对话框框的大小。
单击右下角的尺寸点,按住鼠标按钮。按住按钮移动鼠标。随着鼠标移动,会显示新对话框框大小的轮廓。当对话框框大小为 230 x 126 时,释放鼠标按钮。
单击取消按钮并按Delete删除取消按钮,然后右键单击确定按钮,将出现如下所示的上下文菜单。
从上下文菜单中选择属性。
将出现推送按钮属性对话框。选择常规选项卡;然后,在Caption框中,将OK一词替换为Close,如下所示。
在控件工具栏上,选择静态文本控件。单击对话框框的左上角附近。对话框框上会出现一个静态文本控件,默认文本为 Static。
静态文本控件可用于显示一些信息(我们将使用其中一些作为标签)。您需要三个静态文本控件。因此,您需要重复将静态文本控件拖放到对话框框上的过程。确保每个控件都放置在彼此旁边。
在控件工具栏上,选择编辑控件,并像之前处理文本控件一样。放置两个编辑控件。从控件工具栏中选择组合框,并将其拖放到对话框框中。然后选择列表框控件并将其拖放到对话框框中。从控件工具栏中选择按钮控件并将其拖放到对话框框中。
将新按钮的Caption更改为添加,将其ID更改为IDC_ADD,然后按如下所示在对话框框上排列控件。右键单击静态文本控件并更改其属性,将Caption更改为Title,如下所示
将每个静态文本控件的Caption更改为如下所示。将第一个编辑框控件的编辑属性中的ID更改为IDC_FIRSTNAME,将第二个编辑控件更改为IDC_LASTNAME。
将列表框属性中的ID更改为IDC_NAMELIST,将组合框属性中的ID更改为IDC_TITLE。
单击组合框属性中的数据并按如下所示填充数据。每项添加到列表中后,请记住按Ctrl + Enter转到新行。
在样式选项卡上,将组合框的类型更改为下拉列表。将鼠标移到组合框的下拉按钮上,然后单击左键。将出现另一个矩形(见下文),允许您指定已打开组合框列表的大小。
为控件分配成员变量
按Ctrl + W启动ClassWizard,或从View菜单中选择ClassWizard。将出现 MFC ClassWizard
对话框,如下所示。选择成员变量选项卡,然后在Classname:组合框中选择对话框类;使用CDialog1Dlg。选择IDC_FIRSTNAME,单击Add Variable按钮。将出现对话框(见下文)。在Category中选择Value,并在Member variable type中选择CString
。
在Member variable name中键入m_strFirstName
。
重复相同的过程,为IDC_LASTNAME添加CString
成员变量m_strLastName,为IDC_TITLE添加m_strTitle。
对于IDC_NAMELIST,添加一个类别为Control,变量类型为CListBox的成员变量,如下所示。从项目工作区窗格中选择ClassView选项卡。类列表将如下所示。右键单击CDialog1Dlg类并选择添加成员变量。将出现添加成员变量对话框。在变量中键入CString,在Variable Name中键入m_strFullName。
为控件添加消息处理程序
按Ctrl + W启动ClassWizard,或右键单击Add按钮并从上下文菜单中选择ClassWizard。打开ClassWizard,选择Message Maps选项卡。在Classname中选择CDialog1Dlg
,在ObjectIDs中选择IDC_ADD,然后从Messages list中选择BN_CLICKED,如下所示。
单击Add Function。单击OK,然后单击Edit Code。ClassWizard将在类头文件中编写一个名为Add()
的新空函数,并带有正确的原型。
在//TODO: Add your control notification handler code here
正下方添加粗体代码。
void CDialog1Dlg::OnAdd()
{
// TODO: Add your control notification handler code here
CString strTitle ;
int nIndex;
UpdateData(); // Transfer data from controls to variables
//get currently selected text
nIndex = GetDlgItemText(IDC_TITLE, strTitle); //assigning selected
m_strFullName = strTitle + " " + m_strFirstName + " " + m_strLastName;
m_NameList.AddString(m_strFullName); //Add string to list
UpdateData(FALSE); // Transfer data from variables to controls
}
构建和运行程序
单击标题组合框并选择一个标题。在名字编辑框中写入你的名字,在姓氏编辑框中写入你的姓氏,然后单击Add。如果一切顺利,您将在列表框中看到您的全名和正确的标题,如下所示。
该程序可以是一个大型数据库项目的一部分,但目前我们将就此打住。希望您喜欢本教程。在我的下一个教程中,我将使用其中一些控件来开发一个简单但非常有用的项目:一个多互联网搜索引擎等等。
许可证
本文没有明确的许可证附带,但可能包含文章文本或下载文件本身的使用条款。如有疑问,请通过下面的讨论区与作者联系。作者可能使用的许可证列表可以在此处找到。