VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 2649|回复: 12

[API档案] MessageBox API 函数说明

[复制链接]
01_avatar_middle
最佳答案
40 
online_admins 发表于 2019-4-2 01:14:29 | 显示全部楼层 |阅读模式
简介:
MessageBox 指的是显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。消息框中返回一个整数值,该值指示用户单击了哪个按钮。

语法:
MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)

参数:
hWnd:
此参数代表消息框拥有的窗口。如果为NULL,则消息框没有拥有窗口。

lpText:
消息框的内容。

lpCaption:
消息框的标题。

uType:
指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。指定下列标志中的一个来显示消息框中的按钮以及图标。

uType参数
按钮:
按钮参数含义
MB_OK默认值。有一个确认按钮在里面。
MB_YESNO有是和否在里面。
MB_ABORTRETRYIGNORE有Abort(放弃),Retry(重试)和Ignore(跳过)
MB_YESNOCANCEL消息框含有三个按钮:Yes,No和Cancel
MB_RETRYCANCEL有Retry(重试)和Cancel(取消)
MB_OKCANCEL消息框含有两个按钮:OK和Cancel


图标:
参数含义
MB_ICONEXCLAMATION一个惊叹号出现在消息框
MB_ICONWARNING一个惊叹号出现在消息框
MB_ICONINFORMATION一个圆圈中小写字母i组成的图标出现在消息框
MB_ICONASTERISK一个圆圈中小写字母i组成的图标出现在消息框
MB_ICONQUESTION一个问题标记图标出现在消息框
MB_ICONSTOP一个停止消息图标出现在消息框
MB_ICONERROR一个停止消息图标出现在消息框
MB_ICONHAND一个停止消息图标出现在消息框


指定下列标志中的一个来显不缺省的按钮:标志的含义如下。

MB_DEFBUTTON1:第一个按钮为缺省按钮。如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4没有被指定,则MB_DEFBUTTON1为缺省值。
MB_DEFBUTTON2;第二个按钮为缺省按钮。
MB_DEFBUTTON3:第三个按钮为缺省按钮。
MB_DEFBUTTON4:第四个按钮为缺省按钮。

形态:
参数含义
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一样。当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。但仍需要阻止输入到调用线程的其他窗口,而不是搁置其他线程。


其他:
标志含义
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。


返回值
ID选择了……
IDOK(1)OK
IDCANCEL(2)CANCEL
IDABORT(3)ABORT
IDRETRY(4)RETRY
IDIGNORE(5)IGNORE
IDYES(6)YES
IDNO(7)NO


备注
通过将 uType 参数设置为相应的标志值,可以在消息框中系统图标,具体图标可参见MSDN网站。


实例:
  1. MessageBox(m_hWnd , _T("这是一个最简单的消息框!"));
  2. MessageBox(m_hWnd,_T("这是一个有标题的消息框!"), _T("标题"));
  3. MessageBox(m_hWnd,_T("这是一个确定 取消的消息框!"), _T("标题"), MB_OKCANCEL);
  4. MessageBox(m_hWnd,_T("这是一个警告的消息框!"), _T("标题"), MB_ICONEXCLAMATION);
  5. MessageBox(m_hWnd,_T("这是一个两种属性的消息框!"), _T("标题"), MB_ICONEXCLAMATION|MB_OKCANCEL);
复制代码


在这里使用“_T”标注为使用Unicode,防止因为有的兼容问题而编译不过。

评分

参与人数 3驿站币 +1 热心值 +2 收起 理由
73_avatar_small yanyan11223344 + 1 赞一个!
87_avatar_small 钻石之心 + 1 赞一个!
73_avatar_small 刺客黑旗无言 + 1 赞一个!

查看全部评分





上一篇:第01课 Windows编程前置知识 | 扩展阅读
下一篇:第02课 第一个Windows实例程序 | 作业
16_avatar_middle
最佳答案
0 
在线会员 发表于 2019-4-2 21:12:09 | 显示全部楼层
MessageBox API 函数说明老大加油!
51_avatar_middle
最佳答案
2 
在线会员 发表于 2020-2-24 08:29:20 | 显示全部楼层
感谢大神syc。非常好的网站,我非常喜欢。
51_avatar_middle
最佳答案
2 
在线会员 发表于 2020-3-10 09:52:08 | 显示全部楼层
祝VC驿站越办越好!
15_avatar_middle
最佳答案
0 
在线会员 发表于 2020-4-18 13:19:23 | 显示全部楼层
祝vc越办越好
77_avatar_middle
最佳答案
0 
在线会员 发表于 2020-6-23 10:59:06 | 显示全部楼层
大佬,问下这个报错_T未定义标识符,_T找不到标识符应该怎么改呢?
85_avatar_middle
最佳答案
0 
在线会员 发表于 2020-7-10 08:54:01 | 显示全部楼层
感谢楼主分享
81_avatar_middle
最佳答案
0 
在线会员 发表于 2020-7-18 16:16:20 | 显示全部楼层
学习学习!
73_avatar_middle
最佳答案
0 
在线会员 发表于 2020-7-25 10:39:59 | 显示全部楼层
cxy小怪兽 发表于 2020-6-23 10:59
大佬,问下这个报错_T未定义标识符,_T找不到标识符应该怎么改呢?

加上#include <tchar.h>就可以了
79_avatar_middle
最佳答案
0 
在线会员 发表于 2020-8-4 15:39:54 | 显示全部楼层
楼主辛苦了,赞一个!
02_avatar_middle
最佳答案
0 
在线会员 发表于 2020-9-14 19:39:41 | 显示全部楼层
祝VC驿站越办越好!...
37_avatar_middle
最佳答案
0 
在线会员 发表于 2020-11-6 17:41:43 | 显示全部楼层
支持,谢谢分享
24_avatar_middle
最佳答案
0 
在线会员 发表于 2021-1-8 11:24:44 | 显示全部楼层
感谢分享MessageBox API 函数说明
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2021-1-17 05:16

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表