2010-11-18 89 views
0

鍵盤輸入鍵在MFC對話框中不起作用? 我有一個MFC登錄對話框,當我輸入用戶名和密碼,並點擊輸入鍵關閉對話框,而當我用鼠標點擊登錄它成功登錄。鍵盤輸入鍵在MFC對話框中不起作用?

我需要做什麼使鍵盤在MFC中工作?

+1

Enter鍵被轉換爲IDOK。當你按下該鍵時,就像點擊確定按鈕。通常OnOK()被調用。可能有助於刪除Enter作爲「活動」鍵。 – harper 2010-11-18 12:26:11

+0

@harper:我從我的MFC對話框中刪除了「確定」按鈕,因爲我不需要它。 – 2010-11-18 12:31:15

回答

0

在這種情況下,處理db的pretranslate()方法中的回車鍵。

+0

現在我使用預翻譯()方法是這樣的:BOOL CNDSConnectDlg ::的PreTranslateMessage(MSG * PMSG) { 基類 如果(pMsg->消息== WM_KEYDOWN) { 如果(pMsg->的wParam == VK_RETURN || pMsg-> wParam == VK_ESCAPE) pMsg-> wParam = NULL; } \t \t return CDialog :: PreTranslateMessage(pMsg); }現在,當我按下回車窗口並沒有關閉,但現在我想調用登錄​​方法按下輸入,當我把我的登錄方法在pretransalte()每次它被調用。 – 2010-11-19 08:25:28

3

執行OnOK()和/或OnCancel()方法,並且不要在那裏調用基方法。 (這些是你可以簡單地重載的虛擬方法)。

僅僅因爲你刪除了按鈕並不意味着你不必處理事件! OnOK()輸入鍵和OnCancel()Escape對話框觸發。

+0

問題是我已經刪除確定並取消按鈕,因爲我不需要他們我已經在我的對話框中放置了一個登錄和關閉按鈕,但我將登錄按鈕的圖像放在我需要設置Ownerdraw屬性= true爲按鈕來合併登錄圖像與按鈕,當我做這樣的默認按鈕屬性成爲登錄按鈕的虛假。 – 2010-11-19 03:44:53

+0

那麼爲什麼默認的按鈕屬性會變成false?這聽起來像是我的問題。 – jussij 2010-11-23 07:13:16