### 函数功能

该函数创建、显示和操作一个消息框。消息框含有应用程序定义的消息文本和标题，任何位图和预定义的push（下推）按钮的任意组合。

### 函数原型

int MessageBoxlndirect（LPMSGBoXPARAMs IpMsgBoxParams）；

### 参数

IpMsgBoxParams：指向一个含有用于显示消息框信息的MSGBOXPARAMS结构。

### 返回值

如果没有足够内存来创建消息框，则返回值为零。如果函数调用成功，则返回值为下列对话框返回的菜单项目值中的一个：IDABORT:Abort按钮被选中；IDCANCEL：Cancel 按钮被选中；IDGNORE:lgnorem按钮被选中；IDNO：NO按钮被选中；IDOK：OK按钮被选中；IDRETRY：RETRY按钮被选中；IDYES：YES按钮被选中。
如果一个消息框有一个Cancel按钮，且当Esc键被按或Cancel键被选择时，则函数返回IDCANCEL值。如果消息框没有Cancel按钮，则按Esc键没有作用。
备注:当创建一个系统模态消息框来表示系统在在内存的低端时，由IpText和lpCaption参数指向的字符串不应该从一个资源文件中取出，因为试图装载此资源可能导致失败。
当一个应用程序调用MessageBox，且为uType参数指定MB_ICONHAND和MB_SYSTEMMODAL标志时，系统不管可用内存为多少，直接显示结果消息框。当这些标志被指定，系统被把消息框文本的长度局限于三行。系统不能自动截断要填到消息框的行，但是消息字符串一定含有回车换行，以在合适的位置换行。
如果在对话框出现的的同时创建了消息框，则可使用对话框的句柄作为hwnd参数，hwnd参数不应该标识一个子窗口，例如对话框中的一个控制。
Windows 95：系统可以支持最大达16364个窗口句柄。

### 速查

Wbindows NT：4.0及以上版本；Windows：95及以下版本；Windows CE：不支持；头文件：winuser.h;库文件：User32.lib：Unicoda：在Windows NT上实现为Unicode和ANSI两种版本。