在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就會自動去尋找程式或資...