按MFC对话框中的代码更改Tab顺序

时间:2010-11-12 09:25:21

标签: mfc tabs

我在OnInitDialog中通过代码创建了一个控件,但我找不到任何方法来通过代码更改对话框的Tab键顺序。

任何人都知道如何做到这一点?

2 个答案:

答案 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