MessageBox
MessageBox()函数,功能是弹出一个标准的Windows对话框(模态对话框)。包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。返回值是一个int型的整数,用于判断用户点击了对话框中的哪一个按钮。它不是C函数库的标准函数,而是API函数,但是可以用C语言调用API函数。
函数原型
包含在头文件 windows.h中
intMessageBox( HWND hWnd,LPCTSTR lpText, LPCTSTR lpCaption =NULL, UINT nType = MB_OK );
参数
- 第一个参数:hWnd 该参数是一个窗口句柄,指定该对话框的所有者窗口。如果该参数为空(0/NULL),则该对话框不属于任何窗口。
- 第二个参数:lpText 该参数是一个字符串,指显示在对话框中的内容。
- 第三个参数:lpCaption 也是是一个字符串,指对话框的标题。如果此参数为空,则默认使用“错误”作为标题
- 第四个参数:nType 指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。
nType参数
1、按钮
MB_OK默认值。有一个确认按钮在里面。MB_YESNO显示是和否在里面。MB_OKCANCEL消息框显示两个按钮:OK和CancelMB_ABORTRETRYIGNORE显示Abort(放弃),Retry(重试)和Ignore(跳过)MB_YESNOCANCEL消息框显示三个按钮:Yes,No和CancelMB_RETRYCANCEL显示Retry(重试)和Cancel(取消)
2、图标
MB_ICONEXCLAMATION, MB_ICONWARNING一个惊叹号出现在消息框MB_ICONINFORMATION,MB_ICONASTERISK一个圆圈中小写字母i组成的图标出现在消息框MB_ICONQUESTION一个问题标记图标出现在消息框MB_ICONSTOP,MB_ICONERROR,MB_ICONHAND一个停止消息图标出现在消息框
3、形态
MB_APPLMODAL在hwnd参数标识的窗口中继续工作以前,用户一定响应消息框。但是,用户可以移动到其他线程的窗口且在这些窗口中工作。根据应用程序中窗口的层次机构,用户则以移动到线程内的其他窗口。所有母消息框的子窗口自动地失效,但是弹出窗口不是这样。如果既没有指定MB_SYSTEMMODAL也没有指定MB_TASKMOOAL,则MB_APPLMODAL为缺省的。MB_SYSTEMMODAL除了消息框有WB_EX_TOPMOST类型,MB_APPLMODAL和MB_SYSTEMMODAL一样。用系统模态消息框来改变各种各样的用户,主要的损坏错误需要立即注意(例如,内存溢出)。如果不是那些与hwnd联系的窗口,此标志对用户对窗口的相互联系没有影响。MB_TASKMODAL如果参数hwnd为NULL的话,那么除了所有属于当前线程高层次的窗口失效外,MB_TASKMODALL和MB_APPLMODAL一样。当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。但仍需要阻止输入到调用线程的其他窗口,而不是搁置其他线程。
4、其他
MB_DEFAULT_DESKTOP_ONLY接收输入的当前桌面一定是一个缺省桌面。否则,函数调用失败。缺省桌面是一个在用户已经纪录且以后应用程序在此上面运行的桌面。MB_HELP把一个Help按钮增加到消息框。选择Help按钮或按F1产生一个Help事件。MB_RIGHT文本右对齐MB_RTLREADING用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。MB_SETFOREGROUND消息框变为前景窗口。在内部系统为消息个调用SetForegroundWindow函数。MB_TOPMOST消息框用WS_EX_TOPMOST窗口类型来创建MB_SERVICE_NOTIFICATION。
注:同时设置多个项是,不同的代号用 '| '连接。如:MB_OK | MB_ICONQUESTION
返回值
ID选择结果返回值IDOKOK1IDCANCELCANCEL2IDABORTABORT3IDRETRYRETRY4IDIGNOREIGNORE5IDYESYES6IDNONO7
实例
MessageBox(m_hWnd ,_T("最简单的消息框!"));MessageBox(m_hWnd,_T("有标题的消息框!"),_T("标题"));MessageBox(m_hWnd,_T("确定 取消的消息框!"),_T("标题"), MB_OKCANCEL );MessageBox(m_hWnd,_T("警告的消息框!"),_T("标题"), MB_ICONEXCLAMATION );MessageBox(m_hWnd,_T("两种属性的消息框!"),_T("标题"), MB_ICONEXCLAMATION|MB_OKCANCEL );//在这里使用“_T”标注为使用Unicode,防止因为有的兼容问题而编译不过。//第一个参数也可以省略
MessageBox("错误!","提示", MB_OK| MB_ICONWARNING);
MessageBox("错误!","提示", MB_YESNO| MB_ICONASTERISK);
MessageBox("错误!","提示", MB_OKCANCEL | MB_ICONQUESTION);
MessageBox("错误!","提示", MB_ABORTRETRYIGNORE | MB_ICONSTOP);
MessageBox("错误!","提示", MB_YESNOCANCEL | MB_ICONINFORMATION);
MessageBox("错误!","提示", MB_RETRYCANCEL | MB_ICONEXCLAMATION);
版权归原作者 Minuw 所有, 如有侵权,请联系我们删除。