| | | 托管C++程序开发——Win表单的控件使用 | | 2002-04-11·
·adding··yesky
| 1 2 下一页
上一篇我们着重讨论了用托管C++开发Win表单的一般方法,本篇着重讨论如何向表单中添加控件、处理控件事件以及使用编程等内容。
一、控件的添加
Windows表单的缺省界面是一个类似于MFC对话框的一个窗口,但是在托管C++中却没有像Visual C++那样提供可视化的对话框编辑器,这不能不是一种遗憾,期待Visual C++.NET的下一版本或第三方开发提供这方面的支持。因此,在托管C++中为Win表单添加控件只能手动进行。虽然,这听起来很可怕,却能帮助我们充分理解它们的工作原理,甚至是内层机制。那么,如何向表单中添加控件呢?我们先来看看下面的程序代码:
#using using namespace System;
// 添加WinForms所需要的dlls和所需要的名称空间(同上一篇程序) ...
// 定义一个__gc托管类,包含创建表单的所有代码 __gc class WinForm: public Form { private: Button *closeButton;
public: WinForm() { InitForm(); // 调用自定义的表单初始化代码 } void Dispose() // 表单释放,类似于析构函数 { // 所有的删除代码添加在这里 Form::Dispose(); // 默认的释放操作 } void InitForm() // 所有的表单代码都添加在该方法中 { Text = S"用托管C++开发Win表单应用程序"; // 设置表单窗口标题
closeButton = new Button(); closeButton->Text = S"退 出"; closeButton->TabIndex = 0; closeButton->Size = Drawing::Size(80,23); closeButton->Location = Drawing::Point(Width-100,Height-60);
Controls->Add(closeButton); } }; #ifdef _UNICODE int wmain(void) #else int main(void) #endif { Application::Run(new WinForm()); // 启用应用程序,运行该类 return 0; }
|
程序运行后的结果如图1所示。
从上面的代码可以看出,添加控件的一般过程如下:
(1) 定义一个托管控件类的指针变量,如上面的*closeButton。常用的托管控件类有:按钮类(Button)、复选框类(CheckBox)、带复选框的列表框类(CheckedListBox)、组合框类(ComboBox)、标签类(Label)、可链接的标签类(LinkLabel)、列表框类(ListBox)、单选按钮类(RadioButton)、文本框类(相当于MFC中的编辑框)(TextBox)等,事实上Win表单所提供的托管控件类要比MFC中的控件类要丰富得多,这一点可以从MSDN中得到证实。
(2) 创建该控件,如上面的closeButton = new Button();
(3) 设置控件的属性,这些属性包括大小、位置、颜色以及可见与否等公共属性,具体如表1所示。 Anchor
| 类 别 |
属 性 |
说 明 |
| 位置和大小 |
Size |
控件的大小 |
| Height |
控件的高度 |
| Width |
控件的宽度 |
| Location |
控件左上角在父窗口(容器)中的具体坐标值 |
| Left |
控件左边在父窗口(容器)中的X坐标值 |
| Right |
获取控件右边与父窗口(容器)右边的X距离 |
| Top |
控件上边在父窗口(容器)中的Y坐标值 |
| Bottom |
获取控件下边与父窗口(容器)下边的Y距离 |
| 文本、颜色和字体 |
Text |
控件相关的文本 |
| BackColor |
控件的背景颜色 |
| ForeColor |
控件的前景颜色 |
| BackgroundImage |
控件的背景图像 |
| Font |
控件的字体 |
| 其他 |
AllowDrop |
是否允许控件的数据能够进行拖放操作 |
| Anchor |
控件的哪一边和父窗口(容器)边框保持距离不变 |
| Cursor |
当用户的鼠标移至控件上时所显示的鼠标指针(光标) |
| Dock |
控件停靠在父窗口(容器)的哪一边 |
| Enabled |
该控件是否被激活 |
| Name |
控件所指定的名称 |
| TabIndex |
控件的TAB键选择次序 |
(4) 将创建的控件添加在由.NET Win表单类所指定的Controls(控件)容器中,即有程序:
Controls->Add(closeButton);
1 2 下一页 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|