AfxMessageBox
();
按說messagebox本來就是模態系那是,應該就是對話框最前端。
Windows
API:
MessageBox();
CWnd::MessageBox();
MFC:
AfxMessageBox();
其中CWnd::MessageBox()
與
AfxMessageBox()
都是對
API
函數MessageBox()的封裝。
關於是否需要
句柄
HWND的說明:
1)MessageBox是API,因此它需要HWND參數指定其所屬窗體。
2)CWnd::MessageBox()
是CWnd的
成員函數
,它要求MessageBox只能在cwnd類及其子類中使用;它不要求HWND參數,因為CWnd已經指明了其所屬窗口。
因此CWnd::MessageBox()和::MessageBox(HWND)作用等同。
3)AfxMessageBox()mfc中的全局函數,無句柄HWND參數。能用MessageBox()的地方都能用AfxMessageBox(),但AfxMessageBox不能設置消息框標題(它的默認標題就是應用程序的可執行文件名).
使用建議:
1)在非CWnd類中使用則是API
MessageBox函數,但它使用起來非常不便,必須指定標題、句柄和樣式等,否則選用CWnd::MessageBox()或AfxMessageBox,它們使用起來方便。
2)MessageBox是
模態對話框
,妳不進行確認時程序不往下運行,它會阻塞妳當前的線程為,除非妳程序是多線程的程序,否則只有等待模態對話框被確認。3)如果用MFC的話,請盡量使用afxmessagebox,因為這個全局的對話框最安全,也最方便。