13

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

4

2 回答 2

18

我最近发现您可以使用 SetWindowPos 来完成此操作。确定要在哪个控件之后按 Tab 键顺序插入新控件,然后像这样使用 SetWindowPos:

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

这会更改控件的 z 顺序,从而建立 Tab 键顺序。

于 2008-09-08T17:34:11.130 回答
0

我知道这是一个老问题,但这里是如何在编译时做到这一点(这在绝大多数情况下是可取的):http: //msdn.microsoft.com/en-us/library/7039hzb0 (v=vs .80).aspx

我最喜欢的方法:

  1. 从“视图”菜单中,选择“跳位顺序”。
  2. 选择交互式分配。
  3. 双击要成为 Tab 键顺序中第一个控件的控件旁边的 Tab 键顺序框。
  4. 单击其他每个控件的选项卡顺序框。
  5. 单击表单上的任意位置以保存更改并退出 Tab Order 模式,或按 ESC 退出 Tab Order 模式而不保存更改。
于 2011-07-11T18:07:45.693 回答