初學 MFC 點擊「確定」按鈕程序直接退出,未進入 OnBnClickedOk。截圖顯示資源編譯錯誤、類向導映射缺失等。核心排查步驟:
雙擊錯誤列表跳轉到代碼行,看具體提示:resource.h 缺失、IDD_DIALOG 未定義、消息映射宏拼寫錯誤等。
// 對話框類頭文件
afx_msg void OnBnClickedOk();
// 源文件
BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)
ON_BN_CLICKED(IDOK, &CMyDlg::OnBnClickedOk)
END_MESSAGE_MAP()
確認 IDOK 與按鈕屬性一致,ON_BN_CLICKED 宏大小寫正確。
資源視圖中右鍵按鈕 → Properties → ID 必須為 IDOK,若自定義 ID 需手動添加映射。
重寫 OnOK 時若不調用 CDialogEx::OnOK(),對話框不會正常關閉;若調用過早,可能在驗證前就關閉。
若遷移舊代碼,新建 MFC 對話框項目,逐個複製 .h/.cpp/.rc 內容,避免隱藏配置差異。