如何:添加、编辑或删除控件 (C++)

使用对话框编辑器,可以在对话框中添加、重设大小、编辑和删除控件。 还可以编辑控件的属性,例如其 ID,或者控件在运行时最初是否可见。

使用对话框编辑器时,“对话框编辑器”选项卡将出现在工具箱窗口。 还可以自定义“工具箱”窗口以方便使用。 有关详细信息,请参阅使用工具箱显示或隐藏工具箱窗口

提示

使用对话框编辑器时,在许多情况下,可点击鼠标右键进行选择,以显示常用命令的快捷菜单。

添加控件

添加控件

  1. 确保对话框选项卡式窗口是编辑器框架中的当前文档。 如果对话框不是当前文档,则你在“工具箱”中看不到“对话框编辑器”选项卡

  2. 在“工具箱”窗口的“对话框编辑器”选项卡上,选择所需的控件,然后执行以下操作之一

    • 选择要放置控件的位置的对话框,控件将显示在所选位置。

    • 将控件从“工具箱”窗口拖放到对话框上的该位置。 然后,可以移动控件或更改其大小和形状。

    • 双击“工具箱”窗口中的控件,该控件将显示在对话框中。 将控件重新定位到你喜欢的位置。

添加多个控件

  1. 按住 Ctrl 的同时,在“工具箱”窗口中选择一个控件

  2. 释放 Ctrl,然后根据需要多次选择该对话框以添加特定控件

  3. 按 Esc 停止放置控件

在添加控件时调整其大小

  1. 在“工具箱”窗口中选择控件

  2. 将显示为十字准线的光标放在对话框中新控件左上角的位置。

  3. 选择并按住鼠标按钮,将控件的左上角定位在对话框中。 然后将光标向右向下拖动,直到控件达到所需的大小。

    注意

    可以定位要绘制的控件的任何一个角。 此过程使用左上角作为示例。

  4. 释放鼠标按钮。 控件将以指定的大小固定在对话框中。

提示

在将控件拖放到对话框中后,可以通过移动控件边框上的尺寸控点来重设控件的大小。 有关详细信息,请参阅调整单个控件的大小

添加自定义控件

可将自定义控件添加到对话框。 选择“工具箱”中的“自定义控件”图标,然后将其拖到对话框中。 要添加 Syslink 控件,请添加自定义控件,然后将控件的 Class 属性更改为 Syslink。 该操作将导致属性刷新并显示 Syslink 控件属性。 有关 MFC 包装器类的信息,请参阅 CLinkCtrl

编辑控件

编辑控件或控件的属性

  1. 在对话框中,选择要修改的控件。

    注意

    如果选择多个控件,则只能编辑所选控件通用的属性。

  2. 属性窗口中,更改控件的属性。

    注意

    如果将按钮、单选按钮或复选框控件的 Bitmap 属性设置为“True”,则将为控件实现样式 BS_BITMAP。 有关详细信息,请参阅按钮样式。 有关将位图与控件关联的示例,请参阅 CButton::SetBitmap。 在对话框编辑器中时,位图不会显示在控件上

撤消对控件属性的更改

  1. 确保控件在对话框编辑器中具有焦点

  2. 转到菜单“编辑”>“撤消”。 如果焦点不在控件上,则“撤销”命令将不可用

定义(非按钮)对话框控件的成员变量

注意

此过程仅适用于 MFC 项目中的对话框控件。 ATL 项目应使用“新建 Windows 消息和事件处理程序”对话框。 有关详细信息,请参阅与 User-Interface 对象关联的消息类型编辑消息处理程序为反射消息定义消息处理程序

  1. 对话框编辑器中选择一个控件。

  2. 按住 Ctrl 的同时双击对话框控件

    将出现添加成员变量向导

  3. 在“添加成员变量”向导中键入相应信息。 有关详细信息,请参阅对话框数据交换

  4. 选择“确定”以返回到对话框编辑器

提示

若要从任何对话框控件跳转到其现有的处理程序,请双击该控件。

还可以使用 MFC 类向导中的“成员变量”选项卡为指定类添加新成员变量,并查看已定义的成员变量

删除控件

在对话框中,选择控件,然后按 Delete,或转到菜单“编辑”>“删除”

其他问题

疑难解答

将公共控件或 Rich Edit 控件添加到对话框后,在测试对话框时不会显示该控件。 或者,不会显示对话框本身。 例如:

  1. 创建一个 Win32 项目,修改应用程序设置,以便创建 Windows 应用程序(而不是控制台应用)。

  2. 资源视图中,双击“.rc”文件

  3. 在对话框选项下,双击“关于”框

  4. 向对话框添加“IP 地址控件”

  5. 保存并重新生成所有内容

  6. 执行程序。

  7. 在对话框的“帮助”菜单上,选择“关于”命令并注意没有显示任何对话框

目前,当将以下公共控件或 Rich Edit 控件拖放到对话框中时,对话编辑器不会自动向项目添加代码。 发生此问题时,Visual Studio 也不会提供错误或警告。 若要修复,请手动添加控件的代码。

动画控件
自定义控件
日期时间选取器
扩展组合框

热键
IP 地址控件
列表控件
Month Calendar

进度控件
Rich Edit 2.0 控件
Rich Edit 控件
Slider 控件

数值调节钮控件
Tab 控件
树控件

要在对话框中使用公共控件,需要调用 InitCommonControlsEx,或在创建对话框之前调用 AFXInitCommonControls

要使用 RichEdit 控件,必须调用 LoadLibrary。 有关详细信息,请参阅 Windows SDK 中的关于 Rich Edit 控件Rich Edit 控件概述

注意

要将 RichEdit 控件与 MFC 配合使用,必须先调用 AfxInitRichEdit2 以加载 RichEdit 2.0 Control (RICHED20.DLL),或调用 AfxInitRichEdit 以加载旧版 RichEdit 1.0 Control (RICHED32.DLL)。

可以将当前 CRichEditCtrl 类与旧版 RichEdit 1.0 控件配合使用,但 CRichEditCtrl 仅用于支持 RichEdit 2.0 控件。 由于 RichEdit 1.0 和 RichEdit 2.0 相似,因此大多数方法都可起作用。 但是,1.0 和 2.0 控件之间存在一些差异,因此某些方法可能无法正常工作或根本不起作用。

插入 ActiveX 控件

Visual Studio 使你可以将 ActiveX 控件插入对话框中。 有关详细信息,请参阅 MFC ActiveX 控件ActiveX 控件容器

使用“插入 ActiveX 控件”对话框,可以在使用对话框编辑器时将 ActiveX 控件插入对话框中。 此对话框包含下列属性:

properties 说明
ActiveX 控件 显示 ActiveX 控件的列表。

在此对话框中插入控件不会生成包装类。 如果需要包装类,请使用类视图创建一个,请参阅添加类

如果 ActiveX 控件未出现在此对话框中,请尝试根据供应商的说明安装该控件。
Path 显示在其中找到 ActiveX 控件的文件。

注意

分发系统上的每个 ActiveX 控件可能并非都是合法的。 请参阅安装了控件的软件的许可协议,或与软件公司联系。

添加 ActiveX 控件

  1. 在对话框编辑器中打开一个对话框

  2. 右键单击对话框正文中的任意位置,然后选择“插入 ActiveX 控件”

    “插入 ActiveX 控件”对话框随即出现,其中显示系统上的所有 ActiveX 控件。 在该对话框底部,会显示 ActiveX 控件文件的路径。

  3. 选择要添加到对话框中的控件,然后选择“确定”

    该控件会出现在对话框中,可以在其中编辑它或为它创建处理程序,就如同处理任何其他控件一样。

提示

可以使用对话框编辑器中的快捷菜单将已注册的 ActiveX 控件快速添加到对话框中,或尝试将 ActiveX 控件添加到“工具箱”窗口以便轻松访问

编辑 ActiveX 控件的属性

独立供应商提供的 ActiveX 控件可能配备自己的属性和特征。 这些属性显示在“属性”窗口中。 由 ActiveX 控件的编写器创建的任何属性页都显示在“属性页”对话框中。 (若要查看特定 ActiveX 控件的“属性页”,请在属性窗口中选择“属性页”按钮)。

  • 选择“ActiveX控件”,然后转到菜单“查看”>“属性页”以查看属性。 根据需要在属性页中进行更改。

    ActiveX 控件的属性页中将显示各种选项卡,具体取决于作为 ActiveX 控件一部分提供的属性表。

注意

此过程适用于使用属性页来编辑 ActiveX 控件。 还可以在新“属性”窗口中浏览和编辑 ActiveX 属性

要求

Win32

另请参阅

管理对话框控件
如何:布局控件
如何:定义控件访问权限和值