快速业务通道

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

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30
Top、Left 和 Right。这将导致文本框的大小随窗体的大小一起变化,如图 4 所示。

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

图 4 将文本框定位到顶部、左侧和右侧以及将按钮定位到底部和右侧

虽然默认的定位为左上方,但根本不需要将这些边缘作为定位设置的一部分。例如,您可以看到在图 4 中,OK 和 Cancel 按钮被定位到了右下角,这与 Windows 对话框的习惯相同。

如果您不想生成对话框样式的窗体,而是要生成窗口样式的窗体,定位将不是最好的选择。例如,如果您要构建资源管理器样式的应用程序,该应用程序在顶部有一个菜单栏和一个工具栏,底部有一个状态栏,一个树视图和一个列表视图占据其余空间,并用控件之间的拆分器来确定控件所占据的空间,将不能使用定位。此时,您需要使用停靠。

默认情况下,控件的 Dock 属性设置为 None。您可以在属性浏览器中更改 Dock 属性,方法是选择一个要停靠的边缘,或者选择占据剩余的空间。

例如,状态栏、树视图和列表视图的 Dock 属性可能会显示后两者被一个拆分器控件拆分开来,所有这些都已经安排完毕,您无须编写任何代码。

定位、停靠和拆分并不是排列窗体上的控件的仅有的方法。Windows 窗体还支持分组控件和处理特殊情况下的自定义布局。此外,Windows 窗体支持在父级内排列窗口、这通常称为多文档界面 (MDI)。

数据绑定

数据绑定 是指这样一种能力:将一个或多个控件的内容绑定到一个数据源,使得当其中一方被更新时,另一方也得到更新。数据绑定不光在 Windows 窗体中受到良好支持,它还完全集成到了 Visual Studio .NET 本身当中。

从服务器资源管理器将一个表拖放到设计图面上将创建两个组件,一个用于连接到数据库的连接 和一个通过连接在双方之间传送数据的适配器。在设计器中右键单击适配器并选择 Generate Dataset,将创建一个新的数据集,它是一个从 DataSet 派生的类,生成该类专用于保存您从服务器资源管理器拖出来的表的数据。默认的 General Dataset 选项还会创建新数据集的一个实例,用于与控件相关联。

得到数据的源后,就可以将数据绑定到一个或多个控件。Windows 窗体提供了多个数据库绑定控件,包括 ListBox 和 ComboBox 等,其中 DataGrid 灵活性最高。

窗体上有了数据集后,要将数据网格绑定到它并将其作为数据源,只需在属性浏览器中设置数据网格的 DataSource 和 DataMember 属性,并在加载窗体时填充该数据集:

void InitializeComponent(void)
{
 ...
 this->dataGrid1->DataMember = "Customers";
 this->dataGrid1->DataSource = this->dataSet11;
 ...
}
private: System::Void Form1_Load(System::Object* sender, System::EventArgs* e)
{
 sqlDataAdapter1->Fill(dataSet11);
}

以上只是数据绑定的一般用途以及数据网格的特定用途的冰山一角。有关指向更多数据绑定资源的链接,请参阅后面的“参考”部分。

从 MFC 迁移

作为 MFC 程序员,您花在现有代码基上的时间与精力一定是非常多的。将 MFC 代码迁移到 .NET 框架需要进行仔细的规划。以下是一些注意事项:

如果可以承受得了从头开始,将能够得到可维护性最好的代码基,但是耗时最长。

如果您的大多数 MFC 代码在 COM 控件中(或者可以迁移到 COM 控件),您就可以使用 Windows 窗体作为这些控件的宿主,并为框架编写新的托管代码。

如果您需要升级 MFC 应用程序本身,可以使用 MFC 7.1 提供的功能,将 Windows 窗体控件宿主为 COM 控件,仍旧保留 MFC 代码为非托管。有关指向以上方案的详细信息的链接,请参阅“参考”部分。

如果您想要在 Windows 窗体应用程序中使用托管代码,但是要避免使用 COM Interop 的开销,可以取消 MFC 项目的“Use Managed Extensions”的选项,以便能够在相同的代码中混合使用托管和非托管类型。有关指向以上方案的详细信息的链接,也请参阅“参考”部分。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号