Section courante

A propos

Section administrative du site

APPENDMENU

Crée un menu
Turbo Pascal pour Windows WINPROCS

Syntaxe

Function AppendMenu(Menu: HMenu; Flags, IDNewItem: Word; NewItem: PChar): Bool;

Paramètres

Nom Description
Menu Ce paramètre permet d'indiquer l'identificateur de menu contextuel à afficher.
Flags Ce paramètre permet d'indiquer des drapeaux d'item menu pouvant être combiné :
Constante Description
MF_BITMAP Cette constante permet d'utiliser un Bitmap comme item.
MF_CHECKED Cette constante permet de placer une marque de vérification sur l'item.
MF_DISABLED Cette constante permet de désactiver l'item de menu et ne peut pas être sélectionnable.
MF_ENABLED Cette constante permet d'activer l'item de menu et peut être sélectionnable.
MF_GRAYED Cette constante permet de désactiver l'item de menu, ne peut pas être sélectionnable et est gris.
MF_MENUBARBREAK Cette constante permet de placer l'item dans une nouvelle ligne pour item de barre de menu statique pour un menu contextuel.
MF_MENUBREAK Cette constante permet de placer l'item dans une nouvelle ligne pour item de barre de menu statique.
MF_OWNERDRAW Cette constante permet d'indiquer que l'item est un élément propriétaire dessiné.
MF_POPUP Cette constante permet de spécifier que l'item de menu est un menu contextuel associé avec lui.
MF_SEPARATOR Cette constante permet d'indiquer une ligne de séparation horizontal.
MF_STRING Cette constante permet d'indiquer que l'item de menu est une chaîne de caractères.
MF_UNCHECKED Cette constante permet de ne pas placer de marque de vérification sur l'item.
IDNewItem Ce paramètre permet d'indiquer l'identificateur de commande.
NewItem Ce paramètre permet d'indiquer le nom de l'item de menu.

Description

Cette fonction permet d'ajouter un nouvel item au menu courant.

Exemple

Voici un exemple de l'utilisation de cette fonction :

  1. Program AppendMenuSamples;
  2.  
  3. Uses WinTypes,WinProcs;
  4.  
  5. Const
  6.  CrtWindow: HWnd = 0;
  7.  
  8. Var
  9.  PS: TPaintStruct;
  10.  Message: TMsg;
  11.  
  12. Function CrtWinProc(Window: HWnd; Message, WParam: Word; LParam: LongInt): LongInt;Export;
  13. Var
  14.  DC:HDC;
  15. Begin
  16.  CrtWinProc := 0;
  17.  CrtWindow := Window;
  18.  Case Message of
  19.   wm_Paint:Begin
  20.    DC := BeginPaint(Window, PS);
  21.    EndPaint(Window, PS);
  22.   End;
  23.   wm_Destroy: PostQuitMessage(0);
  24.   Else CrtWinProc := DefWindowProc(Window, Message, WParam, LParam);
  25.  End;
  26. End;
  27.  
  28. Const
  29.  CrtClass: TWndClass = (
  30.   style: cs_HRedraw + cs_VRedraw;
  31.   lpfnWndProc: @CrtWinProc;
  32.   cbClsExtra: 0;
  33.   cbWndExtra: 0;
  34.   hInstance: 0;
  35.   hIcon: 0;
  36.   hCursor: 0;
  37.   hbrBackground: 0;
  38.   lpszMenuName: NIL;
  39.   lpszClassName: 'TPWDraw'
  40.  );
  41.  
  42. Var
  43.  Menu:HMENU;
  44.  PtCurrent:PPoint;
  45.  Point:MakePoint;
  46.  
  47. BEGIN
  48.  If HPrevInst = 0 Then Begin
  49.   CrtClass.hInstance := HInstance;
  50.   CrtClass.hIcon := LoadIcon(0, idi_Application);
  51.   CrtClass.hCursor := LoadCursor(0, idc_Arrow);
  52.   CrtClass.hbrBackground := color_Window + 1;
  53.   RegisterClass(CrtClass);
  54.  End;
  55.  CrtWindow := CreateWindow(
  56.   CrtClass.lpszClassName,
  57.   'AppendMenu Samples',
  58.   ws_OverlappedWindow + ws_HScroll + ws_VScroll,
  59.   cw_UseDefault, cw_UseDefault,
  60.   cw_UseDefault, cw_UseDefault,
  61.   0,0,
  62.   HInstance,
  63.   NIL
  64.  );
  65.  ShowWindow(CrtWindow, CmdShow);
  66.  Point.X := 5;
  67.  Point.Y := 5;
  68.  PtCurrent := @Point;
  69.  Menu := CreatePopupMenu;
  70.  AppendMenu(Menu, MF_ENABLED, 1, 'Option A');
  71.  AppendMenu(Menu, MF_ENABLED, 2, 'Option B');
  72.  AppendMenu(Menu, MF_ENABLED, 3, 'Option C');
  73.  ClientToScreen(CrtWindow, PtCurrent^);
  74.  TrackPopupMenu(Menu, 0, PtCurrent^.X, PtCurrent^.Y, 0, CrtWindow, NIL);
  75.  UpdateWindow(CrtWindow);
  76.  While GetMessage(Message, 0, 0, 0) do Begin
  77.   TranslateMessage(Message);
  78.   DispatchMessage(Message);
  79.  End;
  80. END.

on obtiendra un résultat suivant :

Voir également

Langage de programmation - Turbo Pascal pour Windows - Référence de procédures et fonctions - CREATEMENU
Langage de programmation - Turbo Pascal pour Windows - Référence de procédures et fonctions - DELETEMENU
Langage de programmation - Turbo Pascal pour Windows - Référence de procédures et fonctions - INSERTMENU
Langage de programmation - Turbo Pascal pour Windows - Référence de procédures et fonctions - REMOVEMENU
Langage de programmation - C pour OS/2 - Support de Windows 3.1 - AppendMenu

Dernière mise à jour : Dimanche, le 10 décembre 2017