Crée, affiche, et exploite une boîte de message
#include <WinAPIDlg.au3>
_WinAPI_MessageBoxIndirect ( $tMSGBOXPARAMS )
$tMSGBOXPARAMS | La structure $tagMSGBOXPARAMS qui contient des informations utilisées pour afficher la boîte de message. |
Succès: | Retourne une des constantes $ID*. |
Échec: | Retourne 0. |
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.
Consultez MessageBoxIndirect dans la librairie MSDN.
#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)