MessageBoxEx

【勇芳软件工作室】汉化HomePreviousNext

MessageBoxEx功能创建,显示和操作消息框。消息框包含应用程序定义的消息和标题,以及预定义图标和按钮的任意组合。【wLanguageId】参数指定用于预定义按钮的语言资源集。有关MessageBoxEx的其他参数的完整说明,请参阅MessageBox.

int MessageBoxEx(

HWND 【的hWnd】,//所有者窗口的句柄
LPCTSTR 【lpText】,//消息框中的文本地址
LPCTSTR 【lpCaption】,//消息框标题的地址
UINT 【UTYPE】,//样式的消息框
WORD 【wLanguageId】//语言标识符en
); 

参数

【的hWnd】

标识要创建的消息框的所有者窗口。如果此参数为NULL,则消息框不具有所有者窗口。

【lpCaption】

指向包含要显示的消息的以null结尾的字符串。

【lpszTitle】

指向用于对话框标题的以null结尾的字符串。如果此参数为NULL,则使用默认标题Error。

【UTYPE】

指定一组位标志来确定对话框的内容和行为。此参数可以是来自以下标志组的标志的组合。

指定以下标志之一来指示消息框中包含的按钮:

含义
MB_ABORTRETRYIGNORE消息框包含三个按钮:中止,重试和忽略。
MB_OK消息框包含一个按钮:OK。这是默认值。
MB_OKCANCEL消息框包含两个按钮:确定和取消。
MB_RETRYCANCEL消息框包含两个按钮:重试和取消。
MB_YESNO消息框包含两个按钮:是和否。
MB_YESNOCANCEL消息框包含三个按钮:是,否和取消。

在消息框中指定以下标志之一来显示图标:

含义
MB_ICONEXCLAMATION,
MB_ICONWARNING
消息框中会显示感叹号图标。
MB_ICONINFORMATION, MB_ICONASTERISK
消息框中会显示一个圆圈中的小写字母【i】组成的图标。
MB_ICONQUESTION消息框中会显示问号图标。
MB_ICONSTOP,
MB_ICONERROR,
MB_ICONHAND
消息框中会显示停止标志图标。

指定以下标志之一来指示默认按钮:

含义
MB_DEFBUTTON1第一个按钮是默认按钮。

MB_DEFBUTTON1是默认值,除非指定了MB_DEFBUTTON2,MB_DEFBUTTON3或MB_DEFBUTTON4。

MB_DEFBUTTON2第二个按钮是默认按钮。
MB_DEFBUTTON3第三个按钮是默认按钮。
MB_DEFBUTTON4第四个按钮是默认按钮。

指定以下标志之一来指示对话框的模式:

含义
MB_APPLMODAL用户必须在继续工作之前响应消息框,在【的hWnd】参数标识的窗口中。然而,用户可以移动到其他应用程序的窗口并在这些窗口中工作。

根据应用程序中Windows的层次结构,用户可以移动到应用程序内的其他窗口。消息框的父级的所有子窗口将自动禁用,但弹出窗口不会。

如果既不指定MB_SYSTEMMODAL也不指定MB_TASKMODAL,则MB_APPLMODAL是默认值。

MB_SYSTEMMODAL与MB_APPLMODAL相同,除了消息框具有WS_EX_TOPMOST样式。使用系统模态消息框通知用户需要立即关注的严重的,潜在的破坏性错误(例如,内存不足)。该标志对用户与【的hWnd】相关的其他窗口进行交互的能力没有任何影响。
MB_TASKMODAL与MB_APPLMODAL相同,只有当【的hWnd】参数为NULL时,属于当前任务的所有顶级窗口将被禁用。当调用应用程序或库没有可用的窗口句柄但仍需要阻止输入到当前应用程序中的其他窗口而不挂起其他应用程序时,请使用此标志。

另外,您可以指定以下标志:

MB_DEFAULT_DESKTOP_ONLY

当前接收输入的桌面必须是默认桌面;否则,该函数失败。默认桌面是用户登录后应用程序运行的桌面。

MB_HELP

在消息框中添加一个帮助按钮。选择帮助按钮或按F1会生成一个帮助事件。

MB_RIGHT

文本是正确的。

MB_RTLREADING

在希伯来语和阿拉伯语系统上使用从右到左的阅读顺序显示消息和字幕文本。

MB_SETFOREGROUND

消息框将成为前台窗口。在内部,Windows调用消息框的SetForegroundWindow功能。

MB_TOPMOST

消息框使用WS_EX_TOPMOST窗口样式创建。

MB_SERVICE_NOTIFICATION

仅Windows NT:来电者是向用户通知事件的服务。该函数在当前活动桌面上显示一个消息框,即使没有用户登录到计算机。

如果设置此标志,则【的hWnd】参数必须为NULL。这样,消息框可以出现在与【的hWnd】对应的桌面以外的桌面上。

对于Windows NT版本4.0,MB_SERVICE_NOTIFICATION的值已更改。看到WINUSER.H的旧的和新的值。Windows NT 4.0通过在MessageBoxMessageBoxEx的实现中将旧值映射到新值,为预先存在的服务提供向后兼容性。此映射仅对具有由链接器设置的版本号小于4.0的可执行文件完成。

要构建一个使用MB_SERVICE_NOTIFICATION的服务,并且可以在Windows NT 3.x和Windows NT 4.0上运行,您有两个选择。

1.At link-time, specify a version number less than 4.0; or
在链接时间,指定版本4.0。运行时,使用GetVersionEx功能检查系统版本。然后在Windows NT 3.x上运行时,使用MB_SERVICE_NOTIFICATION_NT3X;并在Windows NT 4.0上使用MB_SERVICE_NOTIFICATION。

MB_SERVICE_NOTIFICATION_NT3X

仅Windows NT:此值对应于为Windows NT版本3.51为MB_SERVICE_NOTIFICATION定义的值。

【wLanguageId】

指定显示预定义按钮中包含的文本的语言。此值必须以MAKELANGID宏返回的形式。

有关Win32支持的语言标识符的列表,请参阅语言标识符.请注意,Windows的每个本地化版本通常仅包含有限语言的资源。因此,例如美国版本提供LANG_ENGLISH,法语版提供LANG_FRENCH,德文版提供LANG_GERMAN,日文版提供LANG_JAPANESE。每个版本都提供LANG_NEUTRAL。这限制了可以与【wLanguageId】参数一起使用的值集合。在指定语言标识符之前,应列举系统上安装的语言环境。

返回值

如果函数成功,则返回值是对话框返回的非零菜单项。

含义
IDABORT中止按钮被选中。
IDCANCEL取消按钮被选中。
IDIGNORE忽略按钮被选中。
IDNO未选择按钮。
IDOK确定按钮被选中。
IDRETRY已选择重试按钮。
IDYES是按钮被选中。

如果消息框具有取消按钮,则当按下ESC键或取消按钮时,该函数将返回IDCANCEL值。如果消息框没有取消按钮,按ESC键不起作用。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

当您创建系统模态消息框以指示系统内存不足时,不会从资源文件中获取作为【lpText】【lpCaption】参数传递的字符串,因为尝试加载资源可能会失败。

当应用程序调用{??989796233}函数并为【UTYPE】参数指定MB_ICONHAND和MB_SYSTEMMODAL标志时,Win32 API将显示生成的消息框,而不管可用内存如何。指定这些标志时,Windows将消息框文本的长度限制为一行。

如果在存在对话框时创建消息框,请使用对话框的句柄作为【的hWnd】参数。【的hWnd】参数不应该标识一个子窗口,比如一个对话框。

Windows 95:系统最多可以支持16,364个窗口句柄。

也可以看看

MAKELANGID, MessageBeep,MessageBox, MessageBoxIndirect, SetForegroundWindow