API trackpopupmenu

Signaler
Messages postés
3
Date d'inscription
mardi 3 septembre 2002
Statut
Membre
Dernière intervention
26 septembre 2002
-
Messages postés
43
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
21 septembre 2006
-
yep!

voila, g un probleme de popup menu:

avec l'api TrackPopUpMenu je veux ouvrir une popupmenu a un endroit precis de mon form.

voila l'API:
Public Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, ByVal lprc As Any) As Long

ou x et y representent les coordonnées du popup

mais les pbs sont que :
le popup utilise comme referentiel l'ecran et non le form (ex le couple (x=0,y=0) represente le coin superieur gauche de l'ecran et non celui du form.

alors g essaye de chinter ca en utilisant form.top et form.left (x=form.left "plus" Mon_X_ou_je_veux_que_mon_pop_soit; y=form.top "plus" mon_Y_ou_je_veux_que_mon_pop_soit)

(le symbole "plus" passe pas)

mais avec ca le popup se place un peu n'importe comment.

HELP ME PLEASE!!

ps: en fait, ce que j'essaye de faire (ce sera peut etre plus simple a comprendre), c'est un bouton du style celui qui est juste a droite du "Precedente" dans IE. Vous voyez, la petite fleche vers le bas qui permet de recuperer les dernieres pages web affichées... encore une fois I NEED HELP!

merci d'avance

5 réponses

Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
pourkoi t'utilise pas tout simplement 1 toolbar ?
0
Messages postés
3
Date d'inscription
mardi 3 septembre 2002
Statut
Membre
Dernière intervention
26 septembre 2002

j'ai regarder le toolbar mais g pas l'impression qu'il me permette de faire le bouton que je veux, qui doit ouvrir un pop up juste dessous lui....
0
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
ben faut que le style de ton bouton principale soit

tbrDropDown

et apres il faut creer des butoonmenus
0
Messages postés
3
Date d'inscription
mardi 3 septembre 2002
Statut
Membre
Dernière intervention
26 septembre 2002

merci bcp!

ca me resservira surement, mais en fait, j'utilise des boutons avec une gueule special et je voulais que ce dit bouton qui me posait pb ait la meme tronche.

oui, parceque j'ai resolu mon pb de popup fou en utilisant les proprietes Screen.TwipsPerPixelX et Screen.TwipsPerPixelY etla mon popup n'est plus fou!!!

j'en profite pour metttre le tit bout de code parce que ca peut etre utile...

'affiche mon popup sur mon form aux coordonnees x et y

Private Sub MonBouton_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim Pt As POINTAPI

Pt.X = (MonForm.Left "plus" x) / Screen.TwipsPerPixelX

Pt.Y = (MonForm.Top "plus" y / Screen.TwipsPerPixelY

If Button = vbLeftButton Then
'ouvre le popup

TrackPopupMenu l_hBack, TPM_LEFTALIGN, Pt.X, Pt.Y, 0, Me.hwnd, ByVal 0&

End If

End Sub

ET ENCORE MERCI!
0
Messages postés
43
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
21 septembre 2006

pour convertir les coordonnees du pointeur de la souris de l'écran vers la form,t'aurais pu utiliser l'API ClientToScreen et inversement avec ScreenToClient (cherche les parametres sur http://msdn.microsoft.com/library)
0