#include "windows.h"main(){MessageBox("示例用法", "demo", MB_OK);}為什么我不新建工程,而是創建一個資源文件1.cpp,輸入以上內容,出錯,提示有MessageBox不是3個參數,輸入一下MessageBox(NULL,"示例用法", "demo", MB_OK);就好了。而如果我新建一個MFC工程,工程名為1,在按鈕代碼中加入:void CMy1Dlg::OnOK() {// TODO: Add extra validation here//CDialog::OnOK();MessageBox(NULL,"示例用法", "demo", MB_OK);}則出錯,提示MessageBox不是4個參數,輸入MessageBox("示例用法", "demo", MB_OK);就編譯通過了,誰能告訴我為什么?
2 回答

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
哈哈,朋友,MessageBox有兩種,一種是API函數,另一種是MFC的CWnd類里對MessageBox API進行封裝后的函數,名字也叫MessageBox。
你的前一種情況是引用了windows API的頭文件,只能使用API的那個,是四個參數。
后一種情況是MFC框架,你的CMy1Dlg繼承CWnd類,那么你的MessageBox用的就是CWnd里的那個,是三個參數。想用API,這樣寫::MessageBox(NULL,"示例用法", "demo", MB_OK); 加兩個冒號

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
環境不是一樣的..
int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT UType);
在DLG的工程里面MessageBox的第一個參數是DLG的句柄.不要寫
- 2 回答
- 0 關注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消