MFC下遮蔽ESC 回車鍵以及ALT F4

2021-08-10 01:59:56 字數 520 閱讀 4648

在mfc程式中,如果不加設定的話,預設按下esc鍵、回車鍵以及alt+f4都會使程式退出,可以使用以下方法遮蔽掉。

在pretranslatemessage中攔截wm_keydown和wm_syskeydown,通過判斷wparam來判斷是否為esc,回車或者f4,然後直接返回就行

例如:bool c***dlg::pretranslatemessage(msg* pmsg) 

{  if(pmsg->message == wm_keydown)

if (pmsg->wparam==vk_escape ||pmsg->wparam==vk_return)  

//遮蔽回車和esc  

return true;  

if (pmsg->message == wm_syskeydown&& pmsg->wparam== vk_f4 )  //遮蔽alt+f4

return true;

return cdialog::pretranslatemessage(pmsg); //別忘了這句 

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

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

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

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

MFC對話方塊應用程式按下回車鍵或者ESC鍵自動關閉

原文已經找不到鏈結,因此選了 原創 侵刪 mfc對話方塊應用程式中,按下回車鍵或者esc鍵,對話方塊會自動關閉。當使用者按下enter鍵時,程式就會自動去查詢 輸入焦點 落在了哪乙個按鈕上,獲得焦點的按鈕的四周將被點線矩形框所包圍。如果所有按鈕都沒有獲得輸入焦點,windows就會自動去尋找程式或資...