扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
#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所示。
类 别 | 属 性 | 说 明 |
位置和大小 | 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);
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者