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

Lis*_*shi 5 tabs mfc

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

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

Sah*_*shi 13


第一选择

在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


Rog*_*mbe 9

对话框上控件的Tab键顺序由这些控件的Z-Order控制.因此,要更改Tab键顺序,请更改相关控件的z顺序定位.

您可以使用SetWindowPos更改z顺序.例如,请看这个.