2010-11-12 130 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