error C2660: 'MessageBoxA' : function does not take 4 parameters

解決辦法,使用域操作符::MessageBox(),則使用API的4個參數形式
::MessageBox(NULL,"","",MB_OK);
MessageBox( NULL, (LPCTSTR)lpMsgBuf, “Error”, MB_OK | MB_ICONINFORMATION );
改爲:
::MessageBox( NULL, (LPCTSTR)lpMsgBuf, “Error”, MB_OK | MB_ICONINFORMATION );

MessageBox是API,因此它需要HWND參數指定其所屬窗體。AfxMessageBox()mfc中的全局函數,無句柄HWND參數。能用MessageBox()的地方都能用AfxMessageBox(),但AfxMessageBox不能設置消息框標題(它的默認標題就是應用程序的可執行文件名).
::MessageBox() 是CWnd的成員函數,它要求MessageBox只能在cwnd類及其子類中使用;它不要求HWND參數,因爲CWnd已經指明瞭其所屬窗口。 因此CWnd::MessageBox()和::MessageBox(HWND)作用等同。

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