MFC 通過**消息映射**機制將 Windows 消息(如 `BN_CLICKED`)路由到 C++ 成員函數。新手常見疑惑:「代碼寫在哪?怎麼和按鈕關聯?」
// MyDialog.h
afx_msg void OnBnClickedButton1();
// MyDialog.cpp
void CMyDialog::OnBnClickedButton1() {
// TODO: 在此添加控件通知處理程序代碼
MessageBox(_T("按鈕被點擊!"));
}
適用於:給現有控件補充消息、批量添加、非對話框類(如 `CView`、`CFrameWnd`)。
BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx)
ON_BN_CLICKED(IDC_BUTTON1, &CMyDialog::OnBnClickedButton1)
END_MESSAGE_MAP()
運行時:用戶點擊按鈕 → 系統發送 `WM_COMMAND` (LOWORD=IDC_BUTTON1, HIWORD=BN_CLICKED) → MFC 遍歷消息映射表 → 匹配調用 `OnBnClickedButton1`。