更新:2007 年 11 月
在 .NET 开发中,Windows GUI 应用程序称为“Windows 窗体”(或“Winforms”)应用程序。使用 Visual C++ 开发 Windows 窗体项目,通常与使用任何其他 .NET 语言(如 Visual Basic 或 C#)进行开发并无不同。
使用 Visual C++ 编写的 Windows 窗体应用程序通过新的 Visual C++ 语法使用 .NET Framework 类和其他 .NET 功能。有关更多信息,请参见 New C++ Language Features。
在本过程中,您将使用工具箱中的几种标准控件创建 Windows 窗体应用程序。用户可以在完成后的应用程序中选择一个日期,此时将出现一个文本标签,显示用户选择的日期。
先决条件
本主题假定您具备 C++ 语言的基础知识。
.gif) 有关视频演示,请参见 Video How to: Creating a Windows Forms Application By Using the .NET Framework (C++)(视频帮助:使用 .NET Framework 创建 Windows 窗体应用程序 (C++))。
 有关视频演示,请参见 Video How to: Creating a Windows Forms Application By Using the .NET Framework (C++)(视频帮助:使用 .NET Framework 创建 Windows 窗体应用程序 (C++))。
创建新的 Windows 窗体项目
- 在“文件”菜单上,单击“新建”,然后单击“项目”。 
- 在“项目类型”窗格中,选择“Visual C++”节点中的“CLR”,然后在“模板”窗格中选择“Windows 窗体应用程序”。 - 键入项目的名称,如“winformsapp”。您可以接受默认位置、键入一个位置或者导航到要保存项目的目录。 
- 随即打开 Windows 窗体设计器,显示所创建项目的“Form1”,如下所示: .gif) 
向窗体添加控件
- 如果看不到“工具箱”窗口,请在“视图”菜单上单击“工具箱”。 
- 将“工具箱”中的三个控件放到“Form1”设计图面上: - 将一个 Label 控件拖动到靠近“Form1”左上角的位置。 
- 将一个 DateTimePicker 控件拖动到 Label 控件正下方。 
- 将一个 Button 控件拖动到窗体底部靠近中心点的位置。 
 - 窗体应该与下面的内容类似: .gif) 
设置窗体和控件的属性
- 单击窗体图面上的空白区域以选择窗体。 
- 如果看不到“属性”窗口,请单击“视图”菜单上的“属性”(或按 F4)。 - 您可能需要关闭“工具箱”以获得更多空间。 
- 设置窗体的“Text”属性(显示在窗体标题栏中),方法是在“属性窗口”中“Text”属性的右侧单击,并键入: - 日期选择器 
- 单击以选择标签,将其“Text”属性设置为: - “选择日期:”。 
- 单击以选择按钮,将其“Text”属性设置为: - “确定”。 - 窗体应该与下面的内容类似: .gif) 
编写事件处理程序代码
在本节中,您将编写在发生以下事件时运行的代码:
- DateTimePicker 控件上的 ValueChanged 事件。 
编写代码以处理事件
- 双击按钮以添加按钮 Click 事件处理程序(按钮的默认事件为 Click 事件)。 - 在选项卡页的编辑区域中显示的窗体的“代码”视图中,此操作创建了一个空事件处理程序方法。 
- 将光标移动到 button1_Click 方法的左大括号之后,并键入在发生该事件时运行的以下代码: - Application::Exit(); - 在键入范围解析运算符 (::) 之后,IntelliSense 将显示可能的有效选项的列表。您可以从该列表中选择一个选项并按 Tab,双击它,或者继续键入。 
- 返回“设计”视图,方法是单击编辑区域中的“Form1.h [设计]”选项卡,或者单击“视图”菜单上的“设计器”。 
- 单击 DateTimePicker 控件。 
- 若要向 DateTimePicker 控件添加 ValueChanged 事件处理程序,请单击“属性”窗口中的闪电形图标,显示该控件的事件。 
- 双击“ValueChanged”事件,在“代码”视图中生成一个空事件处理程序。 .gif) 说明: 说明:- ValueChanged 是 DateTimePicker 控件的默认事件。因此,您还可以双击 DateTimePicker 控件,以生成空事件处理程序。 
- 将光标移动到 dateTimePicker1_ValueChanged 方法的左大括号之后,按 Enter 键,并键入在发生该事件时运行的以下代码: - label1->Text=String::Format("New date: {0}", dateTimePicker1->Text); - 当应用程序的用户选择了新的日期时,标签的 Text 属性将设置为后跟 DateTimePicker 的 Text 属性的字符串 "New date:"。 - Visual Studio 提供了几个可以简化代码键入的功能: - 当键入箭头运算符 (->) 时,IntelliSense 将显示可从中选择的有效选项列表。 
- 当键入方法的左括号时,将出现一个工具提示窗口,其中显示该方法的各个重载的有效参数。要查看不同的重载,请使用向上键或向下键。 
- 自动完成可以根据您已键入的部分完成变量名或成员的键入。例如,如果键入了 String::Fo 并按 Ctrl-空格键或 Tab,Visual Studio 将自动完成键入 String::Format。 
 
生成并运行程序
- 在“生成”菜单中,单击“生成解决方案”。 - 如果存在错误,请单击“输出”窗口中的“转到下一条消息”按钮。错误信息文本显示在状态栏中。您可以双击任何错误,转到源代码中包含该错误的行。 
- 在“调试”菜单中,单击“不进行调试直接运行”。将显示您生成的应用程序。 
- 测试该应用程序,方法是单击 DateTimePicker 上的向下箭头,选择一个日期。标签文本更改为显示所选的日期,如下所示: .gif) 
- 您可以向此应用程序添加更多功能,如菜单、其他窗体和帮助文件。不要畏惧实验。 
后续步骤
上一部分:创建 Win32 应用程序 (C++) | 下一部分:创建 Windows 窗体控件 (C++)