Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497365
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:53:28

下载本文示例代码
  .NET框架在用户界面上提供了三种方式:Windows Forms(Win表单)、Web Forms(Web表单)和控制台应用程序。本篇主要讨论如何用托管C 开发Win表单的一般方法。  Win表单是开发标准Win32屏幕的一种更为高级的方法。与Visual C 中的MFC应用桌面程序相比较,最主要区别在于底层的Windows程序系统框架的不同。传统的Windows程序需要一个WinMain主函数,在这个主函数中进行窗口的创建、注册以及通过一个开头语句进行消息循环。MFC对传统的Windows编程方法进行了大量封装,它将WinMain函数隐藏到应用程序框架内部,当用户运行应用程序时,系统首先自动查找该应用程序的全局theApp,然后自动调用虚函数InitInstance,该函数会进一步调用相应的函数来完成主窗口的构造和显示工作。而托管C 是通过Win表单中的Application(应用程序类)的方法Run在当前线程中启用一个消息循环,并根据所指定的Form类构造一个默认表单窗口,用于创建和设计窗口的所有用户源代码都添加在这个Form类中。例如下面的程序: #using using namespace System;// 添加WinForms所需要的dlls#using "System.dll"#using "System.Windows.Forms.dll"#using "System.Drawing.dll"// 添加WinForms所需要的名称空间using namespace System::ComponentModel;using namespace System::Windows::Forms;using namespace System::Drawing;// 定义一个__gc托管类,包含创建表单的所有代码__gc class WinForm: public Form {private:String *caption; // WinForm的标题 int width; // WinForm的宽度int height; // WinForm的高度public:WinForm() {caption = S"用托管C 开发Win表单应用程序"; width = 400; height = 300;InitForm(); // 调用自定义的表单初始化代码}void Dispose() // 表单释放,类似于析构函数{// 所有的删除代码添加在这里Form::Dispose(); // 默认的释放操作}void InitForm() // 所有的表单代码都添加在该方法中{Text = caption; // 设置表单窗口标题Size = Drawing::Size(width, height); // 设置表示窗口大小MaximizeBox = 0; // 禁止使用窗口的最大化按钮}};#ifdef _UNICODEint wmain(void)#elseint main(void)#endif{Application::Run(new WinForm()); // 启用应用程序,运行该类return 0;}  代码中,WinForm是我们定义的一个托管C 类,所有的表单程序代码都添加在这个类中,且该类的InitForm是一个主要的成员方法,所有的控件等代码都添加在这个方法中。我们来看看上述代码的运行过程:主函数main中调用Application类的方法Run在当前线程中启用一个消息循环,并根据所指定的Form类构造一个默认表单窗口,随后并调用WinForm类的构造函数,由于构造函数中有一个InitForm方法,因而也一并被调用。InitForm方法包含表单的所有代码,系统会根据其中的代码进行相关属性设置、事件处理和相关方法调用。  上述代码中的Text、Size和MaximizeBox是表单窗口标题、大小和是否使用最大化按钮的属性。前面我们曾提到过,.NET框架的属性操作被简化成类似一个变量的操作,但在内部实际上仍然是调用set和get属性方法。表单窗口属性还有一些,例如ForeColor(窗口前景色)、Menu(系统菜单属性)、Icon(图标属性)、BackgroundImage(背景图像属性)等。上述程序运行后,结果如图1所示。   综上所述,用托管C 创建Win表单的一般过程如下:  (1) 用Visual C .NET应用程序向导创建一个托管C 应用程序。  选择“文件”?“新建”?“项目”菜单,在弹出的“新建项目”对话框中选择“Visual C 项目”类型,这时在模板列表中显示出一系列的应用程序项目模板。选择“托管的C 应用程序”模板类型,将项目工作文件夹定位到自己的文件夹中,如“E:\Visual C .NET程序”。并在“名称”框中输入项目名,单击“确定”按钮即可。  (2) 在源文件中添加Win表单所需要的基本名称空间和相关DLLs,参看上述代码,需要说明的是,随着所使用的.NET类库的不同,相应的名称空间和相关DLLs也需要在此基础上进行添加。  (3) 创建一个基于托管类Form的派生类,所有的Win表单相关的代码都添加在这个类中。  (4) 在main或wmain中添加Application::Run等相关代码。  在下一篇中,我们将着重讨论表单中控件的添加、事件处理以及相关编程技巧。   .NET框架在用户界面上提供了三种方式:Windows Forms(Win表单)、Web Forms(Web表单)和控制台应用程序。本篇主要讨论如何用托管C 开发Win表单的一般方法。  Win表单是开发标准Win32屏幕的一种更为高级的方法。与Visual C 中的MFC应用桌面程序相比较,最主要区别在于底层的Windows程序系统框架的不同。传统的Windows程序需要一个WinMain主函数,在这个主函数中进行窗口的创建、注册以及通过一个开头语句进行消息循环。MFC对传统的Windows编程方法进行了大量封装,它将WinMain函数隐藏到应用程序框架内部,当用户运行应用程序时,系统首先自动查找该应用程序的全局theApp,然后自动调用虚函数InitInstance,该函数会进一步调用相应的函数来完成主窗口的构造和显示工作。而托管C 是通过Win表单中的Application(应用程序类)的方法Run在当前线程中启用一个消息循环,并根据所指定的Form类构造一个默认表单窗口,用于创建和设计窗口的所有用户源代码都添加在这个Form类中。例如下面的程序: #using using namespace System;// 添加WinForms所需要的dlls#using "System.dll"#using "System.Windows.Forms.dll"#using "System.Drawing.dll"// 添加WinForms所需要的名称空间using namespace System::ComponentModel;using namespace System::Windows::Forms;using namespace System::Drawing;// 定义一个__gc托管类,包含创建表单的所有代码__gc class WinForm: public Form {private:String *caption; // WinForm的标题 int width; // WinForm的宽度int height; // WinForm的高度public:WinForm() {caption = S"用托管C 开发Win表单应用程序"; width = 400; height = 300;InitForm(); // 调用自定义的表单初始化代码}void Dispose() // 表单释放,类似于析构函数{// 所有的删除代码添加在这里Form::Dispose(); // 默认的释放操作}void InitForm() // 所有的表单代码都添加在该方法中{Text = caption; // 设置表单窗口标题Size = Drawing::Size(width, height); // 设置表示窗口大小MaximizeBox = 0; // 禁止使用窗口的最大化按钮}};#ifdef _UNICODEint wmain(void)#elseint main(void)#endif{Application::Run(new WinForm()); // 启用应用程序,运行该类return 0;}  代码中,WinForm是我们定义的一个托管C 类,所有的表单程序代码都添加在这个类中,且该类的InitForm是一个主要的成员方法,所有的控件等代码都添加在这个方法中。我们来看看上述代码的运行过程:主函数main中调用Application类的方法Run在当前线程中启用一个消息循环,并根据所指定的Form类构造一个默认表单窗口,随后并调用WinForm类的构造函数,由于构造函数中有一个InitForm方法,因而也一并被调用。InitForm方法包含表单的所有代码,系统会根据其中的代码进行相关属性设置、事件处理和相关方法调用。  上述代码中的Text、Size和MaximizeBox是表单窗口标题、大小和是否使用最大化按钮的属性。前面我们曾提到过,.NET框架的属性操作被简化成类似一个变量的操作,但在内部实际上仍然是调用set和get属性方法。表单窗口属性还有一些,例如ForeColor(窗口前景色)、Menu(系统菜单属性)、Icon(图标属性)、BackgroundImage(背景图像属性)等。上述程序运行后,结果如图1所示。   综上所述,用托管C 创建Win表单的一般过程如下:  (1) 用Visual C .NET应用程序向导创建一个托管C 应用程序。  选择“文件”?“新建”?“项目”菜单,在弹出的“新建项目”对话框中选择“Visual C 项目”类型,这时在模板列表中显示出一系列的应用程序项目模板。选择“托管的C 应用程序”模板类型,将项目工作文件夹定位到自己的文件夹中,如“E:\Visual C .NET程序”。并在“名称”框中输入项目名,单击“确定”按钮即可。  (2) 在源文件中添加Win表单所需要的基本名称空间和相关DLLs,参看上述代码,需要说明的是,随着所使用的.NET类库的不同,相应的名称空间和相关DLLs也需要在此基础上进行添加。  (3) 创建一个基于托管类Form的派生类,所有的Win表单相关的代码都添加在这个类中。  (4) 在main或wmain中添加Application::Run等相关代码。  在下一篇中,我们将着重讨论表单中控件的添加、事件处理以及相关编程技巧。 下载本文示例代码


用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法用托管C 开发Win表单的一般方法
阅读(136) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~