VC 中 AfxmessageBox和MessageBox區別

Afx開頭的都是全局函數,也就是說AfxMessageBox可以用於任何程序;而MessageBox只能用在CWnd及其派生類中。與AfxMessageBox類似的函數MessageBox,它是CWnd的類成員函數。

1)AfxMessageBox是MFC庫提供的全局函數,提供了多種重載形式,而MessageBox是標準的Windows Api函數.

2)AfxMessageBox()函數在任何類裏邊都可以使用,而MessageBox()函數只能在CWnd類的繼承類中使用。另外,AfxMessageBox()函數的參數沒有MessageBox()函數的參數豐富,所以後者較前者靈活。 例如:MessageBox可以任意設置標題,而AfxMessageBox不能。

3)AfxMessageBox不能控制消息框標題,常用於調試程序時的內部數據輸出或警告;MessageBox比較正式,常用在要提交的應用程序版本中,可以控制標題內容而不必採用含義不明的可執行文件名爲標題。

使用建議

1)在非CWnd類中使用則是API MessageBox函數,但它使用起來非常不便,必須指定標題、句柄和樣式等,否則選用CWnd::MessageBox()或AfxMessageBox,它們使用起來方便。

2)MessageBox是模態對話框,你不進行確認時程序不往下運行,它會阻塞你當前的線程爲,除非你程序是多線程的程序,否則只有等待模態對話框被確認。

3)如果用MFC的話,請儘量使用afxmessagebox,因爲這個全局的對話框最安全,也最方便。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章