MFC對話方塊程式按回車後程式退出的解決辦法

2021-06-18 19:59:57 字數 755 閱讀 3877

1:最簡單的也是不太好的方法,過載pretranslatemessage函式,遮蔽掉enter鍵

這樣做的代價就是正常的鍵也不能處理enter鍵

bool   cfindworddlg::pretranslatemessage(msg   *pmsg)  

}  

return   cdialog::pretranslatemessage(pmsg);  

}  

2:第二種解決方案

這種是本質上的解決方案。

本質上,由於預設輸入enter鍵時,系統會呼叫onok()函式,cdialog::onok()是乙個可以讓對話方塊退出的函式。

所以我們要重寫onok();

如下void ctest_mfcdlg::onok()

由於預設的id號為idok的控制項是被對映到呼叫cdialog::onok函式,所以,我們要吧id號為idok的控制項改名字為id_ok,隨便換個名字就行,然新增訊息對映

on_bn_clicked(id_ok, &ctest_mfcdlg::onbnclickedok);

void ctest_mfcdlg::onbnclickedok()

void ctest_mfcdlg::onmyok()    // :模擬原來的onok()

ok,現在應該好了,使用習慣一切正常。

MFC基於對話方塊程式

001 020 else if nresponse idcancel 如果對話方塊是用取消來關閉的,則 021 025 026 由於對話方塊已關閉,所以將返回 false 以便退出應用程式,027 而不是啟動應用程式的訊息幫浦。028 return false 029 因為initinstance ...

MFC對話方塊程式遮蔽回車與ESC鍵

取消掉 確定 按鈕的default button屬性,按回車鍵程式依然會退出,即使把 確定 按鈕刪除掉,效果也是一樣。看了下 inside visual c 引用一下書中的原話 當使用者按下enter鍵時,windows就會自動去查詢 輸入焦點 落在了哪乙個按鈕上,獲得焦點的按鈕的四周將被點線矩形框...

MFC對話方塊程式遮蔽回車與ESC鍵

取消掉 確定 按鈕的default button屬性,按回車鍵程式依然會退出,即使把 確定 按鈕刪除掉,效果也是一樣。看了下 inside visual c 引用一下書中的原話 當使用者按下enter鍵時,windows就會自動去查詢 輸入焦點 落在了哪乙個按鈕上,獲得焦點的按鈕的四周將被點線矩形框...