MessageBox()功能

MessageBox()功能。这是一个非常频繁使用的Win32 API,在屏幕上显示一个窗体,提出问题,并等待用户输入。它的原型是 int MessageBox(HWND hwnd,LPCTSTR lptext, LPCTSTR lpcation,UINT utype)
hwnd 句柄。设置为NULL,表示使用Windows 桌面作为其父窗体。
lptext 为一个以NULL结尾的字符串。表示包括文本。
lpcaption 为以NULL结尾的字符串,为消息框标题。

utype 该參数指定显示哪种类型的消息框。这个參数有非常多种。我就直接从百科中贴过来:

button:

MB_OK
默认值。有一个确认button在里面。


MB_YESNO
有是和否在里面。
MB_ABORTRETRYIGNORE
有Abort(放弃),Retry(重试)和Ignore(跳过)
MB_YESNOCANCEL
消息框含有三个button:Yes,No和Cancel
MB_RETRYCANCEL
有Retry(重试)和Cancel(取消)
MB_OKCANCEL
消息框含有两个button:OK和Cancel

图标:

MB_ICONEXCLAMATION
一个惊叹号出如今消息框
MB_ICONWARNING
一个惊叹号出如今消息框
MB_ICONINFORMATION
一个圆圈中小写字母i组成的图标出如今消息框
MB_ICONASTERISK
一个圆圈中小写字母i组成的图标出如今消息框
MB_ICONQUESTION
一个问题标记图标出如今消息框
MB_ICONSTOP
一个停止消息图标出如今消息框
MB_ICONERROR
一个停止消息图标出如今消息框
MB_ICONHAND
一个停止消息图标出如今消息框

形态:

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
把一个Helpbutton添加到消息框。选择Helpbutton或按F1产生一个Help事件。


MB_RIGHT
文本为右调整
MB_RTLREADING
用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。


MB_SETFOREGROUND
消息框变为前景窗体。

在内部系统为消息个调用SetForegroundWindow函数。
MB_TOPMOST
消息框用WS_EX_TOPMOST窗体类型来创建MB_SERVICE_NOTIFICATION。


MessageBox 函数是有返回值的:

IDOK(1) OK
IDCANCEL(2) CANCEL
IDABORT(3) ABORT
IDRETRY(4) RETRY
IDIGNORE(5) IGNORE
IDYES(6) YES
IDNO(7) NO


版权声明:本文博客原创文章。博客,未经同意,不得转载。

posted @ 2015-06-27 11:25  yxwkaifa  阅读(1229)  评论(0编辑  收藏  举报