UDF > WinAPIEx > Dialog >


_WinAPI_MessageBoxIndirect

Crée, affiche, et exploite une boîte de message

#include <WinAPIDlg.au3>
_WinAPI_MessageBoxIndirect ( $tMSGBOXPARAMS )

Paramètre

$tMSGBOXPARAMS La structure $tagMSGBOXPARAMS qui contient des informations utilisées pour afficher la boîte de message.

Valeur de retour

Succès: Retourne une des constantes $ID*.
Échec: Retourne 0.

Remarques

Lorsque vous utilisez une boîte de message système de type modal pour indiquer que la mémoire du système est basse, les chaînes pointées par les membres "Text" et "Caption" de la structure $tagMSGBOXPARAMS ne doivent pas être prises à partir d'un fichier de ressources, car la tentative de charger une ressource peut échouer.

Si vous créez une boîte de message alors qu'une boîte de dialogue est présente, utilisez le handle de la boîte de dialogue pour paramètre hWnd.
Le paramètre hWnd ne doit pas identifier une fenêtre enfant, comme un contrôle dans une boîte de dialogue.

Voir aussi

Consultez MessageBoxIndirect dans la librairie MSDN.

Exemple

#include <MsgBoxConstants.au3>
#include <WinAPIDlg.au3>
#include <WinAPISys.au3>

Local Const $sTitle = 'Message'
Local Const $sText = 'Ceci est un simple message box avec une icône personnalisée.'

Local $tMBP = DllStructCreate($tagMSGBOXPARAMS & ';wchar szCaption[' & (StringLen($sTitle) + 1) & '];wchar szText[' & (StringLen($sText) + 1) & ']')
DllStructSetData($tMBP, 'Size', DllStructGetPtr($tMBP, 'szCaption') - DllStructGetPtr($tMBP))
DllStructSetData($tMBP, 'hOwner', 0)
DllStructSetData($tMBP, 'hInstance', _WinAPI_GetModuleHandle(@SystemDir & '\shell32.dll'))
DllStructSetData($tMBP, 'Text', DllStructGetPtr($tMBP, 'szText'))
DllStructSetData($tMBP, 'Caption', DllStructGetPtr($tMBP, 'szCaption'))
DllStructSetData($tMBP, 'Style', BitOR($MB_OKCANCEL, $MB_USERICON))
DllStructSetData($tMBP, 'Icon', 239)
DllStructSetData($tMBP, 'ContextHelpId', 0)
DllStructSetData($tMBP, 'MsgBoxCallback', 0)
DllStructSetData($tMBP, 'LanguageId', 0)
DllStructSetData($tMBP, 'szCaption', $sTitle)
DllStructSetData($tMBP, 'szText', $sText)

Local $iResult = _WinAPI_MessageBoxIndirect($tMBP)

ConsoleWrite('Retour: ' & $iResult & @CRLF)