如何以编程方式更改Win32对话框中的Tab键顺序?

时间:2008-09-08 17:31:56

标签: winapi dialog

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

2 个答案:

答案 0 :(得分:14)

我最近发现您可以使用SetWindowPos来完成此任务。确定要在Tab键顺序中插入新控件的控件,然后像这样使用SetWindowPos:

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

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

答案 1 :(得分:0)

我知道这是一个老问题,但这里是如何在编译时执行此操作(在绝大多数情况下这是优选的): http://msdn.microsoft.com/en-us/library/7039hzb0(v=vs.80).aspx

我最喜欢的方法:

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