原型:

int afxmessagebox (lpctstrlpsztext,UINT nType=MB_OK,UINT nIDHelp=0);

intafxapiafxmessagebox (uintnidprompt,UINT nType=MB_OK,uintnidhelp=(uint (1 ) );

在第一种格式中,lpszText是要显示的文本,消息框的标题是APP应用程序的可执行文件名称。 在第二种格式中,nIDPrompt是要显示的文本字符串在字符串表中的ID。 调用函数时,会自动从字符串表中加载字符串并显示在消息框中。 nType是显示在消息框中的按钮样式和图标样式的组合,可以通过| (或)操作符组合使用各种样式。

按钮样式

MB_ABORTRETRYIGNORE消息框中显示Abort、Retry和Ignore按钮

MB_OK显示OK按钮

MB_OKCANCEL显示OK、Cancel按钮

MB_RETRYCANCEL显示Retry、Cancel按钮

MB_YESNO显示是,否按钮

MB_YESNOCANCEL显示是、否、Cancel按钮

图标样式

MB _ icon信息显示一个指示提示的I图标

MB_ICONEXCLAMATION显示一个表示警告的感叹号

MB_ICONSTOP显示指示警告或严重错误的手图标

MB_ICONQUESTION将显示问号图标以表示疑问

使用时,只能调用afxmessagebox(lpctstrlpsztext )。 这种默认样式为afxmessagebox(lpctstrlpsztext,MB_OK|MB_ICONEXCLAMATION );

AfxMessageBox ()和MessageBox () )之间的差异

与AfxMessageBox类似的函数MessageBox是CWnd的类成员函数:

int消息盒(lpctstrlpsztext,LPCTSTR lpszCaption=NULL,UINT nType=MB_OK );

两个函数之间的差异: AfxMessageBox比MessageBox简单一点。 因为是全局函数,所以不需要相应的窗口类,但不能控制消息框的标题。 常用于调试器时的内部数据输出和警告。 MessageBox是正式的,常用于提交的APP应用程序版本,允许您控制标题的内容,而无需使用未知的可执行文件名称作为标题。

示例:

afxmessagebox(「areyousure? ”,MB_YESNO|MB_ICONQUESTION;

inta=messagebox(text (‘是否确认删除?’ ,Text(‘Warning!’ 、4;

if(a==6) )。

afxmessagebox(‘yes );

else

afxmessagebox(‘no );

(其中#define IDYES 6 #define IDNO 7)

主要区别:

1.MessageBox在非CWnd类中使用时是API函数,很难使用,必须指定标题和样式

否则,使用CWnd类的函数只需要一个内容参数。 AfxMessageBox与CWnd类的成员函数类似,并且易于使用。 因为它是基于Afx框架的函数

2.MessageBox是模式对话框。 如果不确认,程序将无法向下移动,并阻止当前线程。 除非程序是多线程程序,否则只能等待模式对话框得到确认

3、使用MFC的话,请尽量使用afxmessagebox。 因为这个全球对话框是最安全和方便的。

但是,在WIN32 SDK的情况下只能使用MESSAGEBOX。

问题:

在MFC中,在MessageBox函数字符串前加l是什么意思?

由于vc的多个最近版本(例如vs20032005、2008等MFC的缺省字符集unicode )参考绘图项目属性图,因此vc使用l将字符串转换为unicode字符串。 如果使用“多字节字符集”,则不建议使用_T宏代替此l。 _T关于宏会见tchar.h的大致源代码是这样的。 #define__T(x ) L ## x #define _T(x ) x的作用是,在使用unicode字符集时,如果_t被l替换并使用宽字符,则将空字符串转换为_node字符串intmsgboxid=messagebox (空,l ‘ temp.txtalreadyexists./ndoyouwanttoreplaceit,L’Confirm Save As ‘,MB _ icon exclon if (msgbox id==id yes (//todo : add code )具体代码值为http://msdn.Microsoft.com/en-us/library/ms 64505 (v=vs.com)

极速赛车买前5名的方法指定标题和样式

否则,使用CWnd类的函数只需要一个内容参数。 AfxMessageBox与CWnd类的成员函数类似,并且易于使用。 因为它是基于Afx框架的函数

2.MessageBox是模式对话框。 如果不确认,程序将无法向下移动,并阻止当前线程。 除非程序是多线程程序,否则只能等待模式对话框得到确认

3、使用MFC的话,请尽量使用afxmessagebox。 因为这个全球对话框是最安全和方便的。

但是,在WIN32 SDK的情况下只能使用MESSAGEBOX。

问题:

在MFC中,在MessageBox函数字符串前加l是什么意思?

由于vc的多个最近版本(例如vs20032005、2008等MFC的缺省字符集unicode )参考绘图项目属性图,因此vc使用l将字符串转换为unicode字符串。 如果使用“多字节字符集”,则不建议使用_T宏代替此l。 _T关于宏会见tchar.h的大致源代码是这样的。 #define__T(x ) L ## x #define _T(x ) x的作用是,在使用unicode字符集时,如果_t被l替换并使用宽字符,则将空字符串转换为_node字符串intmsgboxid=messagebox (空,l ‘ temp.txtalreadyexists./ndoyouwanttoreplaceit,L’Confirm Save As ‘,MB _ icon exclon if (msgbox id==id yes (//todo : add code )具体代码值为http://msdn.Microsoft.com/en-us/library/ms 64505 (v=vs.com)