2012-10-20 94 views
0

我有一個標籤頁控件,有一些對話框作爲標籤頁,每個標籤頁都有一個按鈕,它們創建下一個標籤頁,這些按鈕被設置爲默認按鈕,所以當我按下回車鍵時,它會轉到下一個選項卡。但是,按下這些按鈕之後,它們將變爲禁用狀態,並且當您返回到該選項卡時,它不允許客戶端再次單擊下一個按鈕,問題是,當按鈕被禁用時按下Enter鍵而不是默認按鈕,選項卡頁面關閉! 看來進入關閉對話框!但是當我改變選項卡並再次回到該選項卡時,對話框會再次顯示!所以這意味着進入不會破壞或關閉該對話框!當我按下回車鍵時,選項卡控件的標籤頁會關閉

對話框按鈕時enabled.Pressing進入就像單擊按鈕: enter image description here 相同的對話會創建一個選項卡後: enter image description here ,按enter鍵時,下一步按鈕是無效的! enter image description here 更改選項卡並重新回到該選項卡後的對話框! enter image description here

我不明白它的行爲!請注意,我沒有爲輸入按鈕寫任何東西,我只是將這些按鈕設置爲默認按鈕,即使這些按鈕不是默認按鈕,它也會發生!我該怎麼辦?

+1

很難想象,截圖是代碼片段的糟糕替代品。但是對話框的默認按鈕就像OK按鈕一樣。它關閉對話框。 –

回答

1

對話框的默認動作(即按下回車鍵時會調用什麼,如果焦點不在另一個按鈕或捕捉輸入的控件中),則調用OnOk,默認情況下,OnOk關閉對話框。
所以,你必須重寫對話框OnOK函數,並給他們一個空體:

void CMyTabDlg::OnOk() 
{ 
    // Nothing, so it does not close the dialog 
} 

此外,您還可以設置默認按鈕,其他一些按鈕,但我會做覆蓋的OnOK的事情,無論如何,只是安全。

相關問題