您的位置:首页 > 编程语言 > C语言/C++

AfxMessageBox()与MessageBox()的区别

2013-08-09 15:50 330 查看
1. 用法不同
AfxMessageBox:比较简单,是一个全局函数所以不需要对应的一个窗口类,但是不能控制消息框标题,常用于调试程序时的内部数据输出或警告,使用时要加上头文件afxwin.h中,不过该文件一般自动列在stdafx中了;

MessageBox:比较正式,常用在要提交的应用程序版本中,可以控制标题内容而不必采用含义不明的可执行文件名为标题,使用时在CWnd的子类中使用比较简单,在非子类中用法相对比较麻烦。
2. 声明形式不同

AfxMessageBox的声明形式 :

int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );

MessageBox的声明形式:

int WINAPI MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
3. 用法举例

AfxMessageBox:

AfxMessageBox(_T("请首先建立八叉树!"))

MessageBox:
这是C~doc类中调用MessageBox的情景,可见要比AfxMessageBox用法麻烦的多

m_gOctree->SetRevolutionNum(t);
int cur_rev=m_gOctree->GetRevolutionNum();
CString str;
str.Format(_T("当前所设定的分辨率为:%d*%d*%d!"),
static_cast<int>(pow(static_cast<float>(2),static_cast<float>(cur_rev))),
static_cast<int>(pow(static_cast<float>(2),static_cast<float>(cur_rev))),
static_cast<int>(pow(static_cast<float>(2),static_cast<float>(cur_rev))));
CMainFrame* pMainFrame=(CMainFrame*)(AfxGetApp()->m_pMainWnd);
HWND hwnd=pMainFrame->GetSafeHwnd();
MessageBox(hwnd,str,_T("分辨率"),MB_OKCANCEL);Reference:
http://baike.baidu.com/view/1441706.htm

http://baike.baidu.com/view/927800.htm

http://baike.baidu.com/view/1344257.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++