代码之家  ›  专栏  ›  技术社区  ›  Karim

如何在Win32对话框中以编程方式更改选项卡顺序?

  •  10
  • Karim  · 技术社区  · 16 年前

    通常,我需要在通过对话框模板和CreateDialogIndirect生成对话框后向对话框添加控件。在这些情况下,选项卡顺序由对话框模板设置,并且没有明显的方法通过包括新创建的控件来更改选项卡顺序。

    2 回复  |  直到 13 年前
        1
  •  14
  •   Karim    16 年前

    我最近发现你可以使用setwindowpos来完成这个任务。确定要在哪个控件之后按制表顺序插入新控件,然后使用如下setwindowpos:

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

    这将更改控件的Z顺序,从而建立选项卡顺序。

        2
  •  0
  •   Mike Kwan Kyr    13 年前

    我知道这是一个古老的问题,但下面是如何在编译时完成它(在大多数情况下,这是最好的方法): http://msdn.microsoft.com/en-us/library/7039hzb0(v=vs.80).aspx

    我最喜欢的方法:

    1. 从“视图”菜单中,选择“选项卡顺序”。
    2. 选择“交互式分配”。
    3. 双击要成为 选项卡顺序中的第一个控件。
    4. 单击其他每个控件的选项卡顺序框。
    5. 单击表单上的任意位置保存更改并退出选项卡顺序 模式,或按Esc退出选项卡顺序模式而不保存 变化。