UDF > GUI > GuiMenu >


_GUICtrlMenu_GetSystemMenu

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] )

Paramètres

$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.

Valeur de retour

Si le paramètre $bRevert est False, la valeur de retour est le handle d'une copie du menu de la fenêtre.
Si le paramètre $bRevert est True, la valeur de retour est 0.

Remarque

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é.

Voir aussi

Consultez GetSystemMenu dans la librairie MSDN.

Exemple

#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