2010-11-12 83 views
2

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

任何人有任何想法如何做到这一点?

+1

重复:HTTP:// stackoverflow.com/questions/3812880/setting-tab-order-of-item-on-the-dialog – dwo 2010-11-12 12:10:19

回答

6

对话框上控件的tab顺序由这些控件的Z顺序控制。因此,要更改标签顺序,请更改相关控件的z顺序定位。

您可以使用SetWindowPos更改z顺序。例如,请参阅this

5


第一个选项

使用CTRL + d在Visual Studio中资源视图。和改变Tab顺序


其他选项

一个简单的解决方案是改变控制序列中.RC文件...这会改变你的Tab键顺序和Z顺序两者。

例如, 这个对话框会Tab顺序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顺序IDCANCEL第一则IDOK