快速业务通道

使用C++的托管扩展针对Windows窗体编程

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30

摘要:本文讨论了如何使用 Visual C++ .NET 的托管扩展针对 Windows 窗体编程,并提供了使用直接访问 Windows 窗体类的手动编程技术的示例,以及使用 Windows 窗体设计器的示例。此外,本文还对 Windows 窗体和 Microsoft 基础类 (MFC) 应用程序进行了比较。

简介

长期以来,程序员们都使用 C 和 C++ 来开发 Windows GUI 应用程序。对于我们当中很多人来说,这一段历史可以追溯到 Windows 2.0 时期,那时,我们使用基于 C 的 16 位 Windows API,即便只是显示一个窗口,也需要编写数十行代码。幸运的是,随着时间的推移,抽象的级别越来越高,越来越好。在 1992 年,Microsoft 发行了 Programmer''s Workbench,其中包括 Microsoft 基础类库 1.0 版。Microsoft 基础类库 1.0 版包含大约 60 个类,用于包装窗口化编程和绘制部分的 16 位 Windows API。到 2002 年为止,Microsoft 基础类库 7.0 版已经发展为超过 200 个类,并且,其用途已经扩展为能够提供 Microsoft Win32 API 的完整 C++ 对象模型替代物。

虽然 MFC 非常强大,但它也有很多缺点,比如它只是 Win32 API 外的一层薄薄的面板,并且对于很多程序员来说,它太过复杂,很难有效地使用。通常,要开发 Windows 应用程序,仍需要直接访问 Win32 API,特别是在对 Windows 应用程序所需的基本功能的要求不断提升的情况下。因此,要开发任何功能真正强大的 Windows GUI 应用程序,需要耗费大量时间精力。为了应对应用程序开发难度不断提高的状况,Microsoft 于 2002 年初发行了一个针对 Windows 平台的新编程环境。该环境称为 .NET 框架,它为开发人员提供了一个托管 应用程序运行库,以及称为 .NET 框架类库的大量库。.NET 框架可以管理内存和安全性,从而能够产生更为可靠的应用程序。.NET 框架类库提供了一个大型、资源丰富和统一的类库,任何 .NET 语言(包括 Micrisoft 为 .NET 程序员提供的 C++ 的托管扩展和 C++ 的托管版),都可以以相同的方式同等地访问该类库。作为 .NET 框架的一部分,Windows 窗体是一组用于构建客户端 Windows GUI 应用程序的类。

本文中,我们将深入了解如何使用 C++ 的托管扩展编写 Windows 窗体代码,先介绍如何从头开始编写,然后讲解如何使用 Microsoft Visual Studio .NET 2003 来完成这一任务。与此同时,我们将着重介绍 Windows 窗体的一些常用功能,如自动布局和数据绑定。最后,我们将把注意力集中到 Windows 窗体与 MFC 的比较以及在进一步使用托管扩展时,如何混合使用这两套工具。

什么是 Windows 窗体?

Windows 窗体是一个窗口化工具包,而不像 MFC 一样是完整的应用程序框架。事实上,相对于 Windows 窗体所提供的用于构建基于文档的独立应用程序的功能来说,MFC 提供的功能更多。例如,如果要生成一个文本编辑器,在 MFC 中,只需运行一个向导,选择适当的选项并编写若干行代码即可完成。仅仅是通过运行该向导得到的应用程序就包含了一个状态栏、一个工具栏(浮动),并实现了所有的 File、Edit 和 Help 菜单项,其中包括最近使用的文件列表和打印以及上下文相关的帮助,所有这些内容都包含在一个完全徽标兼容的单文档界面 (SDI)、多 SDI 或多文档界面 (MDI) 应用程序中。作为基于文档的应用程序框架,没有能够与 MFC 相匹敌的竞争者。

但是,程序员们现在倾向于构建更多基于 HTML 的应用程序,或者能够与业务对象或数据库服务器通信的应用程序,而不是基于文档的应用程序。.NET 框架和 Windows 窗体正是为这一目的而量身定做的。

这并不是说 Windows 窗体不能用来构建优秀的基于文档的应用程序。实际上,由于 Windows 窗体只是 .NET 框架所提供的超过 2000 个类中的一小部分,您所需要的内容很有可能 Windows 窗体并没有提

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号