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

有帮助吗?

解决方案

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

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

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

其他提示

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

我最喜欢的方法:

  1. 从“视图”菜单中,选择“跳位顺序”。
  2. 选择交互式分配。
  3. 双击控件旁边的选项卡订单框,您想成为选项卡顺序中的第一个控件。
  4. 单击其他每个控件的 Tab 键顺序框。
  5. 单击表单上的任何位置,以保存更改和退出选项卡订单模式,或者按ESC出口选项卡订单模式,而无需保存更改。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top