|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Une fois de plus, Visual Basic possède une fonction très utilisée que Microsoft n'a pas jugé nécessaire d'inclure à eVB. La fonction PopupMenu, qui permet d'afficher un menu flotttant. Heureusement, si on recherche un peu dans les API, on se rend compte que les fonctions nécessaires sont présentes et surtout compatibles avec une utilisation directe en eVB. Pour créer un menu, il faut utiliser plusieurs API :
Toutes ces API sont déclarées de la manière suivante : Public Declare Function CreatePopupMenu Lib
"coredll" () As Long Il existe aussi toute une série de constantes utilisée par la fonction AppendMenu, permettant de régler divers paramètres des items du menu :
Leurs déclarations en eVB sont les suivantes : Private Const MF_ENABLED = &H0& Pour terminer, il existe aussi une autre série de constantes utilisées par la fonction TrackPopupMenuEx pour aligner le cadre du popup menu par rapport aux coordonnées d'affichage.
Leurs déclarations en eVB sont les suivantes : Private Const TPM_CENTERALIGN = &H4 Pour affiche un menu popup, il faut tout d'abord le créer. Pour celà nous devons utiliser la fonction CreateMenu qui retourne un handle (un handle est un entier long qui permet d'identifier un objet sous Windows) vers un nouveau menu, vide. Il faut ensuite ajouter à ce menu vide des lignes, les items. Pour celà nous utilisons la fonction AppendMenu. Cette fonction prend comme paramètres le handle du menu père (celui retourné par la fonction CreateMenu), un entier long servant à régler l'aspect de l'item, un entier représentant le numéro de l'item dans le menu (ce numéro sera retourné par la fonction TrackPopupMenuEx), et enfin une chaine de caractères définissant le titre de l'item. Dim hMenu As Long hMenu = CreatePopupMenu() Une fois le menu créé et rempli, il faut l'afficher. Pour celà, il faut utiliser la fonction TrackPopupMenuEx qui demande comme paramètres le handle du menu créé précédement, un entier long permettant de régler divers aspects sur la manière d'afficher le popup menu, les coordonnées x et y d'affichage, le handle de la fenêtre d'où est affiché ce menu. Le dernier paramètre est toujours réglé à zéro. NumItem = TrackPopupMenuEx(hMenu, TPM_LEFTALIGN Or TPM_TOPALIGN Or TPM_RETURNCMD, intPosLeft, intPosTop, hWnd, 0) Si vous exécutez le code de cette page, vous obtiendrez ceci :
La fonction TrackPopupMenuEx retourne le numéro de l'item sélectionné car nous avons combiné (avec un OR) la constante TPM_RETURNCMD avec les constantes d'alignement. Voilà, vous pouvez maintenant créer des menus flottants, et les faire apparaitre où bon vous semble ! |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Copyright 2001-2004 - Tous droits réservés
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
iPAQ
est un produit de COMPAQ.
|