操作指南:布局控件 (C++)

对话框编辑器提供了布局工具,可以自动对齐控件和调整控件大小。 对于大多数任务,可以使用“对话框编辑器”工具栏。 “格式”菜单上也提供了所有“对话框编辑器”工具栏命令,并且大多数命令都有快捷键

只有在选择了多个控件时,对话框的许多布局命令才可用。 可以选择单个控件或多个控件,当你选择了多个控件时,选择的第一个控件默认是主导控件。

当前控件的位置、高度和宽度显示在状态栏的右下角。 在选中整个对话框后,状态栏将显示整个对话框的位置,以及它的高度和宽度。

排列控件

可以在三种不同状态下使用对话框编辑器排列对话框上的控件:

  • 参考线和边距已启用,设置为默认值。

  • 布局网格已启用。

  • 没有任何贴靠或对齐功能。

对话框编辑器工具栏包含了一些用于控制状态的按钮。

  • 若要更改状态,选择相应的图标,或转到菜单“格式”>“参考线设置”

“参考线设置”对话框具有以下属性:

properties 说明
布局参考线 显示布局参考线的设置。
隐藏布局工具。
标尺和参考线 启用后,会将标尺添加到布局工具中,并允许将参考线放置在标尺中。 默认参考线是边距。
Grid 创建布局网格。 新控件将自动与网格对齐。
网格间距 显示以对话框单位 (DLU) 度量的网格间距的设置。
宽度: DLU 设置布局网格的宽度 (DLU)。 一个水平 DLU 是对话框字体的平均宽度除以 4。
高度: DLU 设置布局网格的高度 (DLU)。 一个垂直 DLU 是对话框字体的平均高度除以 8。

参考线和边距

无论是移动控件、添加控件还是重新排列当前布局,参考线和边距都有助于你在对话框中准确对齐控件。

当你创建对话框时,会看到四个称为“边距”的已修改参考线,显示为蓝色虚线。

  • 若要移动边距,将边距拖动到新位置。

  • 若要使边距消失,将边距移动到零位置。

  • 若要恢复边距,将指针置于边距的零位置上,并将边距移动到位置中。

参考线在编辑器中显示的对话框上显示为蓝色虚线,并且对话框编辑器顶部和左侧的标尺中显示相应的箭头。 移动控件时,控件的尺寸控点对齐到参考线,如果之前没有控件对齐到参考线,则参考线对齐到控件。 移动参考线时,对齐到它的控件也会移动。 移动一条参考线时,对齐到包括它的多条参考线的控件大小会进行调整。

  • 若要在标尺中创建参考线,选择一次以创建参考线,或双击以启动“参考线设置”对话框,你可以在其中指定参考线设置。

  • 若要在对话框中设置参考线,选择该参考线并将它拖动到一个新位置,或选择标尺中的箭头来拖动关联的参考线。

    参考线的坐标显示在窗口底部的状态栏中和标尺中,或者将指针移到标尺中的箭头上,可以显示参考线的确切位置。

  • 若要删除参考线,将参考线拖出对话框,或将相应的箭头拖离标尺。

标尺中用于确定参考线和控件的间距的刻度线是根据对话框单位 (DLU) 定义的。 DLU 基于对话框字体的大小而定,通常是 8 磅 MS Shell Dlg。 一个水平 DLU 是对话框字体的平均宽度除以 4。 一个垂直 DLU 是字体的平均高度除以 8。

  • 若要更改刻度线的间隔,转到菜单“格式”>“参考线设置”,然后在“网格间距”字段中,指定新的宽度和高度 (DLU)。

布局网格

在对话框中放置或排列控件时,可以使用布局网格进行更精确的定位。 当网格已启用时,控件会像被磁化了一样贴靠在网格的虚线上。

  • 若要启用或禁用布局网格,转到菜单“格式”>“参考线设置”,然后选中或清除“网格”按钮。

    你仍然可以使用“对话框编辑器”工具栏上的“切换网格”按钮在各个“对话框编辑器”窗口中控制网格。

  • 若要更改布局网格的大小,转到菜单“格式”>“参考线设置”,然后为网格中的单元格键入高度和宽度 (DLU)。 最小高度或宽度为 4。

禁用参考线

可以将特殊键与鼠标结合使用,以禁用参考线的对齐效果。 使用 Alt 键可禁用所选参考线的对齐效果。 使用 Shift 键移动参考线可防止已对齐的控件与参考线一起移动。

  • 若要禁用参考线的对齐效果,在按住 Alt 键的同时拖动控件。

  • 若要在移动参考线时不移动已对齐控件,在按住 Shift 键的同时拖动参考线。

  • 若要禁用参考线,转到菜单“格式”>“参考线设置”。 然后,在“布局参考线”下,选择“无”

    提示

    也可以在菜单“格式”>“切换参考线”中使用快捷方式。

选择控件

选择控件可以对齐、移动、复制、删除控件或调整其大小,然后完成所需的操作。 在大多数情况下,需要选择多个控件才能使用“对话框编辑器”工具栏上的大小调整工具和对齐工具。

当一个控件被选中时,它周围有一个阴影边框,具有实心(活动)或空心(非活动)尺寸控点,选择边框中显示一些小方块。 当多个控件被选中时,主导控件具有实心的尺寸控点,所有其他选定控件都具有空心的尺寸控点。

  • 若要选择控件,在工具箱窗口中选择“指针”工具,并使用以下步骤之一进行选择:

    • 拖动指针,在你要在对话框中选择的控件周围绘制一个选择框。 当你释放鼠标按钮时,将选中选择框内以及与之相交的所有控件。

    • 按住 Shift 键,然后选择要包含在所选内容中的控件。

    • 按住 Ctrl 键,然后选择要包含在所选内容中的控件。

  • 若要添加或删除所选控件组中的某个控件,按住 Shift 键,然后选择要添加或删除的控件。

主导控件

当你调整多个控件的大小或对齐多个控件时,对话框编辑器使用主导控件来确定其他控件的大小调整或对齐方式。 默认情况下,主导控件是所选的第一个控件。

  • 若要指定主导控件,按住 Ctrl 键,首先选择你想用来影响其他控件的大小或位置的控件。。 按住 Ctrl 键,在所选内容中选择一个控件,也会使该控件成为该所选内容的主导控件。

  • 若要更改主导控件,通过选择所有当前已选定控件之外的控件来清除当前选择,然后重复上述过程,将其他控件选择为第一个控件

注意

主导控件的尺寸控点是实心的,从属控件的控点是空心的。 所有的进一步大小调整或对齐都是基于主导控件的。

大小控件

使用尺寸控点调整控件的大小。 当指针定位在一个尺寸控点上时,它会改变形状以指示控件可以进行大小调整的方向。 处于活动状态的尺寸控点是实心的,如果尺寸控点是空心的,就无法沿该轴调整控件的大小。

  • 若要调整控件的大小,选择控件并拖动尺寸控点以更改大小。

    • 顶部和两侧的尺寸控点可以更改水平或垂直大小。

    • 边角处的尺寸控点可以同时更改水平和垂直大小。

    提示

    可以通过按住 Shift 键并使用向右和向下箭头键来调整控件的大小,一次调整一个对话框单位 (DLU)。

  • 若要自动调整控件的大小以适应其中的文本,转到菜单“格式”或右键单击该控件,然后选择“按内容调整大小”

  • 若要使控件的大小相同,选择要调整大小的控件,转到菜单“格式”>“使大小相同”,然后选择“两者”、“高度”或“宽度”

    需要根据主导控件的大小来调整一组控件的大小,主导控件是序列中第一个选择的控件。 组中控件的最终大小取决于主导控件的大小。

  • 若要使用参考线调整一组控件的大小,将一个或多个控件的一侧对齐一条参考线,然后将参考线拖到控件的另一侧。 现在可以移动任一参考线来调整控件的大小。

    如果需要使用多个控件,可以调整每个控件的大小以对齐到第二条参考线。

其他控件

将组合框添加到对话框时,可以调整组合框的大小。 还可以指定下拉列表框的大小。 有关详细信息,请参阅向组合框控件添加值

  1. 选择组合框右侧的下拉箭头按钮。

    Arrow on a combo box in an MFC project.

    控件的边框会改变,以显示下拉列表区域扩展后组合框的大小。

  2. 使用下部的尺寸控点更改下拉列表区域的初始大小。

    Combo box sizing in an MFC project.

  3. 再次选择下拉箭头可以关闭组合框的下拉列表部分。

注意

当你使用 MFC 向对话框添加带有水平滚动条的列表框时,滚动条不会自动显示在应用程序中。

通过在代码中调用 CListBox::SetHorizontalExtent,为最宽的元素设置最大宽度。 如果不设置此值,即使列表框中的项比框更宽,也不会显示滚动条。

对齐控件

  • 若要对齐控件,请选择要对齐的控件。 转到菜单“格式”>“对齐”,然后选择以下对齐方式之一:

    保持同步 说明
    左对齐 沿左侧对齐所选控件。
    中心 沿中心点水平对齐所选控件。
    权限 沿右侧对齐所选控件。
    顶部对齐 沿上边缘对齐所选控件。
    中间对齐 沿中间点垂直对齐所选控件。
    底部对齐 沿下边缘对齐所选控件。

    在执行对齐或调整大小命令之前,请务必先选择你要将其作为主导控件的控件,或将其设置为主导控件,因为控件组的最终位置取决于主导控件的位置。

  • 若要均匀地隔开控件,选择要重新排列的控件。 转到菜单“格式”>“均匀隔开”,然后选择以下隔开对齐方式之一:

    间距 说明
    交叉 在最左侧和最右侧的选定控件之间均匀隔开控件。
    向下 在最顶部和最底部的选定控件之间均匀隔开控件。
  • 若要将控件居中,选择要重新排列的一个或多个控件。 转到菜单“格式”>“在对话框内居中”,然后选择以下排列方式之一:

    排列 说明
    垂直 将控件在对话框内垂直居中。
    水平 将控件在对话框内水平居中。
  • 若要对齐按钮,选择一个或多个按钮。 转到菜单“格式”>“排列按钮”,然后选择以下排列方式之一:

    排列 说明
    Right 沿对话框右边缘对齐按钮。
    沿对话框下边缘对齐按钮。

    如果选择按钮以外的控件,则其位置不会受到影响。

要求

Win32

另请参阅

管理对话框控件
如何:添加、编辑或删除控件
如何:定义控件访问权限和值