我在OnInitDialog中通过代码创建了一个控件,但我找不到任何方法来通过代码更改对话框的Tab键顺序。
任何人都知道如何做到这一点?
答案 0 :(得分:9)
对话框上控件的Tab键顺序由这些控件的Z-Order控制。因此,要更改Tab键顺序,请更改相关控件的z顺序定位。
您可以使用SetWindowPos更改z顺序。例如,请参阅this。
答案 1 :(得分:8)
<小时/> 第一个选项
在visual studio的资源视图中使用 ctrl + d 。并更改标签顺序
<小时/> 其他选项
更简单的解决方案是更改 .rc 文件中的控件序列 ...这将更改Tab键顺序和z顺序。
对于Eg。 此对话框将首先显示Tab Order IDOK,然后是IDCANCEL
IDD_ABOUT DIALOG DISCARDABLE 0, 0, 239, 66 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "My About Box" FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "&OK",IDOK,174,18,50,14 PUSHBUTTON "&Cancel",IDCANCEL,174,35,50,14 END
现在如果你把它改成
IDD_ABOUT DIALOG DISCARDABLE 0, 0, 239, 66 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "My About Box" FONT 8, "MS Sans Serif" BEGIN PUSHBUTTON "&Cancel",IDCANCEL,174,35,50,14 DEFPUSHBUTTON "&OK",IDOK,174,18,50,14 END
首先是Tab Order IDCANCEL然后是IDOK