message box.docx
- 文档编号:18600778
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:23
- 大小:23.64KB
message box.docx
《message box.docx》由会员分享,可在线阅读,更多相关《message box.docx(23页珍藏版)》请在冰点文库上搜索。
messagebox
函数功能:
该函数创建、显示、和操作一个消息框。
消息框含有应用程序定义的消息和标题,加上预定义图标与Push(下按)按钮的任何组合。
函数原型:
intMessageBox(HWNDhWnd,LPCTSTRlpText,LPCTSTRlpCaption,UINTUType);
参数:
hWnd:
标识将被创建的消息框的拥有窗口。
如果此参数为NULL,则消息框没有拥有窗口。
lpText:
指向一个以NULL结尾的、含有将被显示的消息的字符串的指针。
lpCaption:
指向一个以NULL结尾的、用于对话框标题的字符串的指针。
uType:
指定一个决定对话框的内容和行为的位标志集。
此参数可以为下列标志组中标志的组合。
指定下列标志中的一个来显示消息框中的按钮,标志的含义如下。
MB_ABORTRETRYIGNORE:
消息框含有三个按钮:
Abort,Retry和Ignore。
MB_OK:
消息框含有一个按钮:
OK。
这是缺省值。
MB_OKCANCEL:
消息框含有两个按钮:
OK和Cancel。
MB_RETRYCANCEL:
消息框含有两个按钮:
Retry和Cancel。
MB_YESNO:
消息框含有两个按钮:
Yes和No。
MB_YESNOCANCEL:
消息框含有三个按钮:
Yes,No和Cancel。
指定下列标志中的一个来显示消息框中的图标:
标志的含义如下。
MB_ICONEXCLAMATION:
MB_ICONWARNING:
一个惊叹号出现在消息框。
MB_ICONINFORMATION:
MB_ICONASTERISK:
一个圆圈中小写字母i组成的图标出现在消息框。
MB_ICONQUESTION:
一个问题标记图标出现在消息框。
MB_ICONSTOP:
MB_ICONERROR:
MB_ICONHAND:
一个停止消息图标出现在消息框。
指定下列标志中的一个来显不缺省的按钮:
标志的含义如下。
MB_DEFBUTTON1:
第一个按钮为缺省按钮。
如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4没有被指定,则MB_DEFBUTTON1为缺省值。
MB_DEFSUTTON2;第二个按钮为缺省按钮。
MB_DEFBUTTON3:
第三个按钮为缺省按钮。
MB_DEFBUTTON4:
第四个按钮为缺省按钮。
指定下列标志中的一个来显示对话框的形态:
标志的含义如卜。
MB_APPLMODAL:
在hwnd参数标识的窗口中继续工作以前,用户一定响应消息框。
但是,用户可以移动到其他线程的窗口且在这些窗口中工作。
根据应用程序中窗口的层次机构,用户则以移动到线程内的其他窗口。
所有母消息框的子窗口自动地失效,但是弹出窗口不是这样。
如果既没有指定MB_SYSTEMMODAL也没有指定MB_TASKMOOAL,则MB_APPLMODAL为缺省的。
MB_SYSTEMMODAL:
除了消息框有WB_EX_TOPMOST类型,MB_APPLMODAL和WS_EX_TOPMOST一样。
用系统模态消息框来改变各种各样的用户,主要的损坏错误需要立即注意(例如,内存溢出)。
如果不是那些与hwnd联系的窗口,此标志对用户对窗口的相互联系没有影响。
MB_TASKMODAL:
如果参数hwnd为NULL,除了所有属于当前线程高层次的窗口足失效的,MB_TASKMODALL和MB_ApPLMODAL一样。
当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。
但仍需要阻止到调用应用程序甲其他窗口的输入而不是搁置其他线程。
另外,可以指定下列标志。
MB_DEFAULT_DESKTOP_ONLy:
接收输入的当前桌面一定是一个缺省桌面。
否则,函数调用失败。
缺省桌面是一个在用户已经纪录且以后应用程序在此上面运行的桌面。
MB_HELP:
把一个Help按钮增加到消息框。
选择Help按钮或按F1产生一个Help事件。
MB_RIGHT:
文本为右调整。
MB_RTLREADING:
用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。
MB_SETFOREGROUND:
消息框变为前景窗口。
在内部系统为消息个调用SetForegrundWindow函数。
MB_TOPMOSI:
消息框用WS_EX_TOPMOST窗口类型来创建MB_SERVICE_NOTIFICATION。
WindowsNT:
调用程序是一个通知事件的用户的服务程序。
函数在当前活动桌面上显示一个消息框,即使没有用户登记到计算机。
如果设置了此参数,则hwnd参数一定为NULL。
所以消息框可以出现在一个桌面上而不是桌面响应参数hwnd。
对于WindowsNT4.0,MB_SERVICE_NOTIFICATION的值已经改变。
对于旧的和新的值,请参见WINUSER。
WindowsNT4.O通过把旧值映射到MessageBox和MessageBoxEx执行中的新值,为先存在的服务程序提供逆兼容。
此映射只为有了版本数目的可执行程序而做。
为了建立一个用MB_SERVICE_NOTIFICATION的服务器,且可以在WindowsNT3.X和WindowNT4.0上执行,可有两种选择。
在连接时间,指定一个版本数目小于4.0的版本,或在连接时间,指定一个4.0版本。
在运行时间,用函数GetVersionEx来检测系统版本,然后在WindowsNT3.X上用MB_SERVICE_NOTIFICATION_NT3.x来运行和在WindowsNT4.0上用MB_SERVICE_NOTIFICAION来运行。
MB_SERVCE_NOTIFICATION_NT3.x(WindowNT)此值响应于为WindowNT3.51的MB_SERVICE_NOTIFICAION
定义的值。
返回值:
如果没有足够的内存来创建消息框,则返回值为零。
如果函数调用成功,则返回值为下列对话框返回的菜单项目值中的一个:
IDABORT:
Abort按钮被选中。
IDCANCEL:
Cancel按钮被选中。
IDIGNORE:
Ignore按钮被选中。
IDNO:
NO按钮被选中。
IDOK:
OK按钮被选中。
IDRETRY:
RETRY按钮被选中。
IDYES:
YES按钮被选中。
如果一个消息框有一个Cancel按钮,且如果Esc键被按下或Cancel键被选择,则函数返回IDCANCEL值。
如果消息框没有Cancel按钮,则按Esc键没有作用。
备注:
当创建一个系统模态消息框来表示系统在内存的低端中时,由lpTeXt和lpCaption参数指向的字符串不应该从一个资源文件中取出,因为试图装载此资源可能导致失败。
当一个应用程序调用MessageBox,且为uType参数指定MB_ICONHAND和MB_SYSTEMMODAL标志时,系统不管可用内存为多少,直接显示结果消息框。
当这些标志被指定,系统把消息框文本的长度局限于三行。
系统不能自动截断要填到消息框的行,但是消息字符串一定含有回车换行,以在合适的位置换行。
如果在对话框出现的的同时创建了消息框,则可使用对话框的句柄作为hwnd参数,hwnd参数不应该标识一个子窗口,例如对话框中的一个控制。
Windows95:
系统可以支持最大达16364个窗口句柄。
WindowsCE:
WindowsCE不支持uType参数的下列值:
MB_STSTEMMODAL;MB_TASKMODAL;MB_HELP;MB_RTLREADING;MB_DEFAULT_DESKTOP_ONLY;
MB_SERVICE_NOTIFICATION;MB_USERICON。
不支持下列返回值:
IDCLOSE;IDHELP。
速查:
Windows:
3.1及以上版本:
Windows:
95及以上版本;Windows:
1.0及以上版本;头文件:
Winuser.h;库文件:
USer32.lib;URicode:
在WindowsNT上实现为Unicode和ANSI两种版本。
----------------------------------------------------------------------------------------------------------------------------------------------------
在MFC里面MessageBox被封装成了更方便使用的另外一种形式:
*************************************************************以下内容引自msdn***************************************************************
intMessageBox(
LPCTSTRlpszText,
LPCTSTRlpszCaption=NULL,
UINTnType=MB_OK
);
Parameters
lpszText
PointstoaCStringobjectornull-terminatedstringcontainingthemessagetobedisplayed.
lpszCaption
PointstoaCStringobjectornull-terminatedstringtobeusedforthemessage-boxcaption.IflpszCaptionisNULL,thedefaultcaption"Error"isused.
nType
Specifiesthecontentsandbehaviorofthemessagebox.
ReturnValue
Specifiestheoutcomeofthefunction.Itis0ifthereisnotenoughmemorytocreatethemessagebox.
Remarks
UsetheglobalfunctionAfxMessageBoxinsteadofthismemberfunctiontoimplementamessageboxinyourapplication.
Thefollowingshowsthevarioussystemiconsthatcanbeusedinamessagebox:
//MS.MSDNQTR.2005JUL.1033/vclib/html/vc364f1.gif"border=0>MB_ICONHAND,MB_ICONSTOP,andMB_ICONERROR //MS.MSDNQTR.2005JUL.1033/vclib/html/vc364f2.gif"border=0>MB_ICONQUESTION //MS.MSDNQTR.2005JUL.1033/vclib/html/vc364f3.gif"border=0>MB_ICONEXCLAMATIONandMB_ICONWARNING //MS.MSDNQTR.2005JUL.1033/vclib/html/vc364f4.gif"border=0>MB_ICONASTERISKandMB_ICONINFORMATION *************************************************************以上内容引自msdn*************************************************************** 由于这种形式的MessageBox使用起来更方便,所以更多时候程序员使用的是这一种形式的消息框 下面的例子可以让我们对比两种函数的用法,两行代码的功能都是显示一个消息框,内容为“示例用法” : : MessageBox(NULL,"示例用法","demo",MB_OK); MessageBox("示例用法");//采用了一些C++的语法特性使用消息框用起来更顺手 VC中MessageBox的常见用法2009-10-0820: 31一、关于MessageBox 消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1.MessageBox("这是一个最简单的消息框! "); 2.MessageBox("这是一个有标题的消息框! ","标题"); 3.MessageBox("这是一个确定取消的消息框! ","标题",MB_OKCANCEL); 4.MessageBox("这是一个警告的消息框! ","标题",MB_ICONEXCLAMATION); 5.MessageBox("这是一个两种属性的消息框! ","标题",MB_ICONEXCLAMATION|MB_OKCANCEL); 6.if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL) return; 附其它常用属性: 系统默认图标,可在消息框上显示 X错误MB_ICONHAND,MB_ICONSTOP,andMB_ICONERROR ? 询问MB_ICONQUESTION ! 警告MB_ICONEXCLAMATIONandMB_ICONWARNING i信息MB_ICONASTERISKandMB_ICONINFORMATION 按钮的形式 MB_OK默认 MB_OKCANCEL确定取消 MB_YESNO是否 MB_YESNOCANCEL是否取消 返回值 IDCANCEL取消被选 IDNO否被选 IDOK确定被选 IDYES是被选 注意! ! ! : 以上消息框的用法是在CWnd的子类中的应用,如果不是,则要MessageBox(NULL,"ddd","ddd",MB_OK);或MessageBox(hWnd,"ddd","ddd",MB_OK);hWnd为某窗口的句柄,或者直接用AfxMessageBox。 MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容、信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对话框信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对框。 1、函数原型及参数 functionMessageBox(hWnd: HWND;Text,Caption: PChar;Type: Word): Integer; hWnd: 对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。 Text: 欲显示的信息字符串。 Caption: 对话框标题字符串。 Type: 对话框类型常量。 该函数的返回值为整数,用于对话框按钮的识别。 2、类型常量 对话框的类型常量可由按钮组合、缺省按钮、显示图标、运行模式四种常量组合而成。 (1)按钮组合常量 MB_OK=$00000000; //一个确定按钮 MB_OKCANCEL=$00000001; //一个确定按钮,一个取消按钮 MB_ABORTRETRYIGNORE=$00000002; //一个异常终止按钮,一个重试按钮,一个忽略按钮 MB_YESNOCANCEL=$00000003; //一个是按钮,一个否按钮,一个取消按钮 MB_YESNO=$00000004; //一个是按钮,一个否按钮 MB_RETRYCANCEL=$00000005; //一个重试按钮,一个取消按钮 (2)缺省按钮常量 MB_DEFBUTTON1=$00000000; //第一个按钮为缺省按钮 MB_DEFBUTTON2=$00000100; //第二个按钮为缺省按钮 MB_DEFBUTTON3=$00000200; //第三个按钮为缺省按钮 MB_DEFBUTTON4=$00000300; //第四个按钮为缺省按钮 (3)图标常量 MB_ICONHAND=$00000010; //“×”号图标 MB_ICONQUESTION=$00000020; //“? ”号图标 MB_ICONEXCLAMATION=$00000030; //“! ”号图标 MB_ICONASTERISK=$00000040; //“i”图标 MB_USERICON=$00000080; //用户图标 MB_ICONWARNING=MB_ICONEXCLAMATION; //“! ”号图标 MB_ICONERROR=MB_ICONHAND; //“×”号图标 MB_ICONINFORMATION=MB_ICONASTERISK; //“i”图标 MB_ICONSTOP=MB_ICONHAND; //“×”号图标 (4)运行模式常量 MB_APPLMODAL=$00000000; //应用程序模式,在未结束对话框前也能切换到另一应用程序 MB_SYSTEMMODAL=$00001000; //系统模式,必须结束对话框后,才能做其他操作 MB_TASKMODAL=$00002000; //任务模式,在未结束对话框前也能切换到另一应用程序 MB_HELP=$00004000; //HelpButton 3、函数返回值 0 //对话框建立失败 IDOK=1 //按确定按钮 IDCANCEL=2 //按取消按钮 IDABOUT=3 //按异常终止按钮 IDRETRY=4 //按重试按钮 IDIGNORE=5 //按忽略按钮 IDYES=6 //按是按钮 IDNO=7 //按否按钮 二、在MessageBox中显示变量的值 CStringstring; string.format("%d%s",m_age,m_address);//将变量组装到字符串中 MessageBox(string,"消息框标题",消息框类型); 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 【函数】<整型>MessageBox(<字符串>Text,<字符串>Title,<整型>nType); 【函数说明】弹出一个消息框。 【语法】 参数: Text<字符串>,消息框的正文; Title<字符串>,消息框的标题; nType<整型>,消息框的类型。 返回值: <整型>,用户在消息框上点击关闭时的选择的按钮。 【说明】 其中nType对应的对话框如下表所示: 0: 确定 1: 确定,取消 2: 终止,重试,忽略 3: 是,否,取消 4: 是,否 5: 重试,取消 6: 取消,再试一次,继续(注: WindowsNT下不支持) 返回值对应的值如下: 1: 确定 2: 取消 3: 终止 4: 重试 5: 忽略 6: 是 7: 否 10: 再试一次 应用程序中的提示信息处理程序是非常出重要的部分,用户要知道他输入的资料到底正不正确 ,或者是应用程序有一些提示信息要告诉用户,都必须通过提示信息处理程序来显示适当的信息, 让用户了解下一步该如何配置。 提示信息有很多种类,包括警告,错误,提示,确认,重试等。 不 同种类的提示信息框适合用在各种不同的情况。 在C++Builder中开发提示信息框只须调用MessageBox这个信息提示框函数就行,下面就是这个 函数说明: int__fastcallMessageBox(constchar*Text,//提示信息框的内容 constchar*Caption,//提示信息框的标题 intFlags);//提示信息框的类别 参数Flags的值是用来标志提示信息框的类别的,下面是一些常用的类别: 参数值样式意义 MB_ICONWARNING含图标、固定按钮警告信息框 MB_ICONQUESTION含图标、固定按钮疑问信息框 MB_IConERROR含图标、固定按钮错误信息框 MB_ICONASTERISK含图标、固定按钮提示信息框 MB_HELP不含图标、可改变按钮说明信息框 MB_OK不含图标、可改变按钮提示信息框 MB_OKCANCEL不含图标、可改变按钮确认信息框 MB_RETRYCANCEL不含图标、可改变按钮重试信息框 MB_YESNO不含图标、可改变按钮是否信息框 MB_YESNOCANCEL不含图标、可改变按钮是否取消信息框 从上表可以看出来,提示信息框的类别可以分成含图标和不含图标,含图标的意思就是指提示 信息框上会有代表意义的图形,不过这类型的提示信息框的按钮都是固定的,都是【确定】按钮, 不能增加也不能省略;不含图标的提示信息框,虽然没有对应的图形显示在提示信息框上,可是你 却可以在这种类型的提示信息框内,加入各种组合的按钮,用于各种不同的情况。 MessageBox函数会返回一个整数值,这个整数值代表用户刚刚点击提示信息框上的哪个按钮,每个 返回值的代表意义在下表: 返回值数值意义 IDOK1确定 IDCANCEL2取消 IDABORT3中断 IDRETRY4重试 IDIGNORE5忽略 IDYES6是 IDNO7否 下面是提示信息框的示范程序: 1.警告信息框 Application->MessageBox("警告信息框","警告信息框",MB_ICONWARNING); 2.疑问信息框 Application->MessageBox("疑问信息框","疑问信息框",MB_ICONQUESTION); 3.错误提示框 Application->MessageBox("错误信息框","错误信息框",MB_IConERROR); 4.提示信息框 Application->MessageBox("提示信息框","提示信息框",MB_ICONASTERISK); 5.说明信息框 Appl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- message box