c++中的消息框messagebox()详细介绍及使⽤⽅法
简介:
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_APPLMODAL 在hwnd 参数标识的窗⼝中继续⼯作以前,⽤户⼀定响应。但是,
⽤户可以移动到其他线程的窗⼝且在这些窗⼝中⼯作。根据应⽤程
序中窗⼝的层次机构,⽤户则以移动到线程内的其他窗⼝。所有母
的⼦窗⼝⾃动地失效,但是弹出窗⼝不是这样。如果既没有指定M B_SYSTEMMODAL 也没有指定MB_TASKMOOAL ,则MB_APPL MODAL 为缺省的。MB_SYSTEMMODAL
除了有WB_EX_TOPMOST 类型,MB_APPLMODAL 和MB_SYST EMMODAL ⼀样。⽤系统模态来改变各种各样的⽤户,主要的损坏错误需要⽴即注意(例如,)。如果不是那些与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
变为前景窗⼝。在内部系统为消息个调⽤SetForegrou ndWindow 函数。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 ⽹站。
图标
标志位值
MB_ICONHAND , MB_ICONSTOP , 或者MB_ICONERROR
MB_ICONQUESTION
MB_ICONEXCLAMATION 或者 MB_ICONWARNING MB_ICONASTERISK 或者 MB_ICONINFORMATION
createprocessa添加两个从右到左标记 (RLMs),Unicode 格式字符中⽤ U+200F 表⽰。在消息框显⽰字符串的开头被由 MessageBox 渲染引擎解释,以致造成 MessageBox 的阅读顺序,呈现为从右向左 (RTL) 。
当您使⽤⼀个系统模式消息框指⽰时,当系统内存不⾜时,由 lpText 和 lpCaption 的参数的字符串不应被从资源⽂件,因为加载资源的尝试可能会失败。返回值
备注
如果在⼀个对话框存在时创建⼀个消息框,则使⽤对话框的句柄作为hWnd 参数。hWnd参数不应指定为⼀个⼦窗⼝,就像对话框中的控件⼀样。
实例:
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,防⽌因为有的兼容问题⽽编译不过。
MFC特例
假如您创建了⼀个MFC⼯程,如果⼯程⽂档中有MainFrm.cpp的话,那么,本函数就被封装成了
int MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption = NULL,UINT nType = MB_OK);
参数
lpszText:指向⼀个字符串包含要显⽰的消息。
lpszCaption:指向⼀个字符串包含标题。
nType:指定消息框的内容和⾏为。
MFC下实例:
MessageBox(_T("这是⼀个最简单的消息框!"));
MessageBox(_T("这是⼀个有标题的消息框!"),_T("标题"));
MessageBox(_T("这是⼀个确定取消的消息框!"),_T("标题"), MB_OKCANCEL );
MessageBox(_T("这是⼀个警告的消息框!"),_T("标题"), MB_ICONEXCLAMATION );
MessageBox(_T("这是⼀个两种属性的消息框!"),_T("标题"), MB_ICONEXCLAMATION|MB_OKCANCEL );
mfc下使⽤MessageBox(HWND hWnd,LPCTSTR lpText, LPCTSTR lpCaption,UINT uType)⽅法:
:
:MessageBox(m_hWnd,_T("这是⼀个两种属性的消息框!"),_T("标题"), MB_ICONEXCLAMATION|MB_OKCANCEL );
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论