int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL,UINT nType =MB_OK );
参数
lpszText:
消息正文
lpszCaption:消息框标题(默认没有)
nType:消息框的风格
nType取值
lpszCaption:消息框标题(默认没有)
nType:消息框的风格
nType取值
1
、系统默认图标,可在消息框上显示
X错误 MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR
?询问 MB_ICONQUESTION
!警告 MB_ICONEXCLAMATION and MB_ICONWARNING
i信息 MB_ICONASTERISK and MB_ICONINFORMATION
X错误 MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR
?询问 MB_ICONQUESTION
!警告 MB_ICONEXCLAMATION and MB_ICONWARNING
i信息 MB_ICONASTERISK and MB_ICONINFORMATION
2
、按钮的形式(想在弹出的对话框中显示的按钮,默认为MB_OK)
[YES] [NO] MB_YESNO
[YES][NO][CANCEL] MB_YESNOCANCEL
[RETRY][CANCEL] MB_RETRYCANCEL
[OK] MB_OK
[OK][CANCEL] MB_OKCANCEL
[ABORT][RETRY][IGNORE] MB_ABORTRETRYIGNORE
[YES][NO][CANCEL] MB_YESNOCANCEL
[RETRY][CANCEL] MB_RETRYCANCEL
[OK] MB_OK
[OK][CANCEL] MB_OKCANCEL
[ABORT][RETRY][IGNORE] MB_ABORTRETRYIGNORE
3
、 指定下列标志中的一个来显示缺省的按钮:
MB_DEFBUTTON1
:第一个按钮为缺省按钮。如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4没有被指定,则MB_DEFBUTTON1为缺省值。
MB_DEFSUTTON2;第二个按钮为缺省按钮。
MB_DEFBUTTON3:第三个按钮为缺省按钮。
MB_DEFBUTTON4:第四个按钮为缺省按钮。
MB_DEFSUTTON2;第二个按钮为缺省按钮。
MB_DEFBUTTON3:第三个按钮为缺省按钮。
MB_DEFBUTTON4:第四个按钮为缺省按钮。
4
、nType中可以组合使用, for examble:
int iRes = MessageBox("你看见消息框了吗?","测试",MB_YESNO|MB_ICONWARNING);
if( iRes == IDYES )
MessageBox("看见了就好!");
int iRes = MessageBox("你看见消息框了吗?","测试",MB_YESNO|MB_ICONWARNING);
if( iRes == IDYES )
MessageBox("看见了就好!");
返回值
如果没有足够的内存来创建消息框,则返回值为零。如果函数调用成功,则返回值为下列对话框返回的菜单项目值中的一个:
IDABORT Abort button was selected.
IDIGNORE Ignore button was selected
IDNO No button was selected.
IDOK OK button was selected
IDRETRY Retry button was selected.
IDYES Yes button was selected
IDIGNORE Ignore button was selected
IDNO No button was selected.
IDOK OK button was selected
IDRETRY Retry button was selected.
IDYES Yes button was selected
IDCANCEL
如果消息框有Cancel按钮,且如果Esc键被按下或
Cancel键被选择,则函数返回IDCANCEL值。如果消息框没有Cancel按钮,则按Esc键没有作用。
MessageBox
与AfxMessageBox的区别
AfxMessageBox
是MFC库提供的全局函数,提供了多种重载形式,而MessageBox是标准的windows Api函数.估计AfxMessageBox 最终还是调用了MessageBox.
AfxMessageBox()
函数在任何类里边都可以使用。而MessageBox()函数,在CWnd类的继承类中使用时int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL,UINT nType =MB_OK ); 在其他类,则要
int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT UType);
hWnd
为某窗口的句柄。另外,AfxMessageBox()函数的参数没有MessageBox()函数的参数丰富,所以后者较前者灵活。 AfxMessageBox不能控制消息框标题,常用于调试程序时的内部数据输出或警告;MessageBox比较正式,常用在要提交的应用程序版本中,可以控制标题内容而不必采用含义不明的可执行文件名为标题。
参考:
http://hi.baidu.com/s0746/blog/item/ae6c43fe8693e2355d600830.html
http://blog.csdn.net/qiumingbo/archive/2007/05/25/1625324.aspx