::MessageBox(NULL, "沒有該車次!", "登錄錯誤", MB_ICONINFORMATION);
強制編譯器從全域命名空間查找後續的名稱,忽略區域/類/命名空間作用域中同名的宣告。
MessageBox 是 Windows API 全域函式 (定義於 winuser.h)。CWnd 類別也定義了同名成員函式 CWnd::MessageBox。CWnd 衍生類的成員函式內直接寫 MessageBox(...) 會呼叫 CWnd::MessageBox (需 this 指標)。:: 明確指呼叫全域 API 版本,不需視窗控制碼 (HWND) 即可顯示模態對話框。// C 標準庫定義
#define NULL 0 // 或 (void*)0
// C++11 建議改用 nullptr (強型別)
MessageBox 第一個參數為 HWND hWnd (擁有者視窗控制碼)。
NULL (即 0) 表示無擁有者視窗,對話框獨立顯示,不依附任何視窗。HWND,對話框會置於該視窗上方,並共享工作列群組。| 呼叫方式 | 解析目標 | 適用場景 |
|---|---|---|
MessageBox(...) | 類成員 CWnd::MessageBox | 在 CWnd 衍生類內,需依附當前視窗 |
::MessageBox(...) | 全域 API MessageBox | 獨立對話框、主控台程式、非 MFC 環境 |
AfxMessageBox(...) | MFC 全域輔助函式 | 自動關聯主視窗、支援資源字串 ID |
nullptr 取代 NULL,避免整數/指標多載解析歧義。