【问题标题】:How to solve this TabStop style Issue如何解决此 TabStop 样式问题
【发布时间】:2011-06-28 23:44:18
【问题描述】:

我知道使用 isDialogMessage() 函数我们可以将焦点从一个控件切换到另一个。 我的怀疑是

  • 是否可以覆盖控件应从第一个按钮聚焦到第三个按钮。
  • 如果可能,如何自定义 WS_TABSTOP 属性

我也想知道焦点从控制转移到控制的依据是什么。

如何设置每个控件的tabindex属性?

【问题讨论】:

    标签: c++ c mfc window


    【解决方案1】:

    确定要在哪个控件之后按 Tab 键顺序插入新控件,然后像这样使用 SetWindowPos:

    SetWindowPos(hNewControl, hOldControl, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

    这会改变控件的 z 顺序,从而建立 tab 顺序。

    【讨论】:

      【解决方案2】:

      制表位的顺序取决于控件在对话框中添加的顺序。 您可以在 Visual Studio 的资源编辑器中打开对话框,然后按 CTRL+D 来查看和修改 Tab 键顺序。

      要进行修改,只需按下控件左上角显示的数字即可。编号为 1 的控件将是第一个关注您的对话框的控件,顺序由连续数字给出。 使用此方法,您可以设置任何 Tab 键顺序。

      希望这会有所帮助。

      【讨论】:

      • 我在mfc中试过了。它的工作......但是如何在win32应用程序中订购控件焦点
      • 您的对话框是从资源创建的,还是在代码中显式创建的控件?
      • 控件仅在代码中显式创建。请为我做一些必要的事情。
      • 如果您在代码中创建控件,则顺序由创建顺序设置。因此,将创建的第一个控件将是选项卡顺序中的第一个,依此类推。您可以在创建后使用 SetWindowPos 并更改 z-order 以更改 tab 顺序。
      • 你能提供一些关于这个问题的样本吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 2017-04-05
      • 2020-02-16
      • 2019-10-26
      相关资源
      最近更新 更多