科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件托管C++程序开发——Win表单的控件使用

托管C++程序开发——Win表单的控件使用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

上一篇我们着重讨论了用托管C++开发Win表单的一般方法,本篇着重讨论如何向表单中添加控件、处理控件事件以及使用编程等内容

作者:Adding 来源:YESKY 2007年11月16日

关键字: 托管C++ 程序开发 Win表单 控件使用

  • 评论
  • 分享微博
  • 分享邮件
上一篇我们着重讨论了用托管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);

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章