msdn:
MessageBoxIndirect
The MessageBoxIndirect function creates, displays, and operates a message box. The message box contains application-defined message text and title, any icon, and any combination of predefined push buttons.int MessageBoxIndirect(
  CONST LPMSGBOXPARAMS lpMsgBoxParams  // message box parameters
);
Parameters
lpMsgBoxParams 
[in] Pointer to a MSGBOXPARAMS structure that contains information used to display the message box. 
Return Values
If the function succeeds, the return value is one of the following menu-item values. Value Meaning 
IDABORT Abort button was selected. 
IDCANCEL Cancel button was selected. 
IDCONTINUE Continue button was selected. 
IDIGNORE Ignore button was selected. 
IDNO No button was selected. 
IDOK OK button was selected. 
IDRETRY Retry button was selected. 
IDTRYAGAIN Try Again button was selected. 
IDYES Yes button was selected. 
If a message box has a Cancel button, the function returns the IDCANCEL value if either the ESC key is pressed or the Cancel button is selected. If the message box has no Cancel button, pressing ESC has no effect. If there is not enough memory to create the message box, the return value is zero. Res
When you use a system-modal message box to indicate that the system is low on memory, the strings pointed to by the lpszText and lpszCaption members of the MSGBOXPARAMS structure should not be taken from a resource file, because an attempt to load the resource may fail. If you create a message box while a dialog box is present, use a handle to the dialog box as the hWnd parameter. The hWnd parameter should not identify a child window, such as a control in a dialog box. Windows 95: The system can support a maximum of 16,364 window handles

解决方案 »

  1.   

    [Now Supported on Windows NT]The MessageBoxIndirect function creates, displays, and operates a message box. The message box contains application-defined message text and title, any icon, and any combination of predefined push buttons.int MessageBoxIndirect(    LPMSGBOXPARAMS lpMsgBoxParams // address of structure for message box parameters
       );
     ParameterslpMsgBoxParamsPointer to a MSGBOXPARAMS structure that contains information used to display the message box.  Return ValuesThe return value is zero if there is not enough memory to create the message box.
    If the function succeeds, the return value is one of the following menu-item values returned by the dialog box: Value Meaning
    IDABORT Abort button was selected.
    IDCANCEL Cancel button was selected.
    IDIGNORE Ignore button was selected.
    IDNO No button was selected.
    IDOK OK button was selected.
    IDRETRY Retry button was selected.
    IDYES Yes button was selected.
     If a message box has a Cancel button, the function returns the IDCANCEL value if either the ESC key is pressed or the Cancel button is selected. If the message box has no Cancel button, pressing ESC has no effect. ResWhen you use a system-modal message box to indicate that the system is low on memory, the strings pointed to by the lpszText and lpszCaption members of the MSGBOXPARAMS structure should not be taken from a resource file, because an attempt to load the resource may fail. 
    When an application calls MessageBoxIndirect and specifies the MB_ICONHAND and MB_SYSTEMMODAL flags for the dwStyle member of the MSGBOXPARAMS structure, Windows displays the resulting message box regardless of available memory. When these flags are specified, Windows limits the length of the message box text to three lines. Windows does 
    not automatically break the lines to fit in the message box, however, so the message string must contain carriage returns to break the lines at the appropriate places. If you create a message box while a dialog box is present, use the handle of the dialog box as the hWnd parameter. The hWnd parameter should not identify a child window, such as a control in a dialog box. 
    Windows 95: The system can support a maximum of 16,364 window handles.