看板 C_and_CPP 關於我們 聯絡資訊
很簡單. 直接在 CMyDlg::OnCancel裡, 不做任何事就return. 如下 void CTestDlg::OnCancel() { // TODO: Add extra cleanup here //CDialog::OnCancel(); return; } 然後再把 IDCANCEL那個Button的ID改掉, 改成 MYIDCANCEL, 點兩下去新增function, 在新的 OnMYIDCANCEL裡去呼叫 CDialog::OnCancel(); 如下 void CTestDlg::OnMYIDCANCEL() { // TODO: Add your control notification handler code here CDialog::OnCancel(); } ※ 引述《PTTSuck (Kubrick)》之銘言: : [36m開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : VC6.0 : 問題(Question): : 使用Dialog的DoModal功能,希望按下ESC時不做任何動作。 : 補充說明(Supplement): : 設計想法: : 將某些功能包成一個控制室窗執行, : 不用Create的原因在於預防主程式其他的功能和控制視窗的功能打架, : 若使用Create則必須在開啟視窗時把所有可能起衝突的UI Disable, : 管理上相當繁瑣。 : 若使用DoModal則可將focus限定在該視窗內,感覺比較俐落; : 但原PO希望使用者能依照正常程序結束視窗, : 也就是OK/Cancel,鍵盤ESC有可能在控制視窗尚未完成工作時就跳離, : 因此希望保留OK/Cancel功能但不要使用鍵盤離開DoModal。 : 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.69.87.123