Permet à l'application d'accéder au menu de la fenêtre pour des opérations de copie et de modification
#include <GuiMenu.au3>
_GUICtrlMenu_GetSystemMenu ( $hWnd [, $bRevert = False] )
$hWnd | Handle de la fenêtre qui possédera une copie du menu de la fenêtre |
$bRevert | [optionnel] Spécifie l'action à prendre. Si ce paramètre est False, la fonction retourne un handle de la copie du menu de la fenêtre en cours d'utilisation. La copie est initialement identique à la fenêtre de menu, mais elle peut être modifiée. Si ce paramètre est True, la fonction réinitialise le menu de la fenêtre à l'état par défaut. Le menu de la fenêtre précédente, le cas échéant, est détruit. |
Toute fenêtre qui n'utilise pas la fonction GetSystemMenu pour faire sa propre copie du menu d'une fenêtre reçoit le menu standard.
Le menu contient initialement des éléments avec différentes valeurs d'identification, telles que $SC_CLOSE, $SC_MOVE, et $SC_SIZE. Les éléments de menu dans le menu de fenêtre envoit les messages $WM_SYSCOMMAND.
Tous les éléments de menu de fenêtre prédéfinis ont des numéros d'identification plus grand que 0xF000.
Si une application ajoute des commandes dans le menu de fenêtre, elle doit utiliser des numéros d'identification inférieurs à 0xF000.
Le système met automatiquement en gris les éléments du menu de fenêtre standard, en fonction de la situation.
L'application peut effectuer elles-mêmes ses opérations cocher et griser en répondant au message $WM_INITMENU qui est envoyé avant qu'un menu soit affiché.
Consultez GetSystemMenu dans la librairie MSDN.
#include <GuiMenu.au3> Example() Func Example() Local $hWnd, $hMenu, $iCount, $iI ; Ouvre le Bloc-Notes Run("notepad.exe") WinWaitActive("[CLASS:Notepad]") $hWnd = WinGetHandle("[CLASS:Notepad]") $hMenu = _GUICtrlMenu_GetSystemMenu($hWnd) ; Joue avec le menu système _GUICtrlMenu_InsertMenuItem($hMenu, 5, "&AutoIt") ; Affiche le menu système $iCount = _GUICtrlMenu_GetItemCount($hMenu) Writeln("Handle du menu Système: 0x" & Hex($hMenu)) Writeln("Nb d'éléments .......: " & $iCount) For $iI = 0 To $iCount - 1 Writeln("élemnt " & $iI & " text ......: " & _GUICtrlMenu_GetItemText($hMenu, $iI)) Next EndFunc ;==>Example ; Écrit une ligne de texte dans le Bloc-Notes Func Writeln($sText) ControlSend("[CLASS:Notepad]", "", "Edit1", $sText & @CRLF) EndFunc ;==>Writeln