cs_obby
Messages postés91Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention12 octobre 2006
-
29 juil. 2005 à 12:33
cs_obby
Messages postés91Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention12 octobre 2006
-
29 juil. 2005 à 18:01
Salut a tous,
J'aurai voulu savoir comment on faisait un truc. Je ne sais pas
vraiment qu'est-ce qu'il faut que je recherche en fait. J'explique ce
que je cherche à faire: En fait, je veux cliquer sur un bouton (ca pas
de pb c'est de mon niveau) et que ca affiche une sorte de liste de
choix juste en dessous du bouton (y'a que 2 choix possible!!), que l'on
sélectionne un des deux et que cela lance une action. Mon problème se
situe plus dans le fait d'afficher cette liste de choix !
zouippy
Messages postés14Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention29 juillet 2005 29 juil. 2005 à 12:51
si t'es sous visual c++, tu créé une liste combinée. Tu met par exemple IDC_LISTE1 comme ID et tu décoche la case Visible puis tu créé un évenement pour le bouton. Dans le code de la fonction tu met: GetDlgItem(IDC_LISTE1)->ShowWindow(TRUE);
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 juil. 2005 à 15:00
Si ca plante sur cette ligne, ca doit être GetDlgItem(IDC_LISTE1) qui retourne NULL. Oublie de toute facons cette histoire de ShowWindow, laisse à visible c'est tout.
Regarde juste ce que retourne GetDlgItem(IDC_LISTE1)
cs_obby
Messages postés91Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention12 octobre 2006 29 juil. 2005 à 15:02
Ba non il faut que ca s'affiche uniquement quand on clic sur l'autre
bouton, ce qui veut bien dire qu'à un moment il faut qu'on décide de
l'afficher puis de le masquer
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 juil. 2005 à 15:03
C'est le système qui s'occupe de cela. Une combobox est une edit+une listBox, c'est la listBox qui s'affiche ou se cache, mais ce n'est pas toi qui gère ca.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 juil. 2005 à 17:08
Tu sous-classes le bouton, et dans WM_RBUTTONDOWN, tu fait le trackPopupMenu
Ceci est un exemple un peu similaire: http://www.cppfrance.com/code.aspx?ID=32072, mais avec une ListBox
cs_obby
Messages postés91Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention12 octobre 2006 29 juil. 2005 à 17:35
Bon en fait, j'arrive a créer mon petit menu, et il fait ce que je lui
ai demandé. A ce petit détail près, il n'est pas placé ou je le
souhaitait. En fait, j'aurai aimé qu'il se situe en dessous de mon
bouton, mais je n'y arrive pas pour l'instant.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 juil. 2005 à 17:39
RECT rect;
GetWindowRect(hBtn, &rect);
Mettre le menu à la position (rect.left, rect.bottom + 1)
Tu peux aussi penser au fait que si le bouton est trop bas sur l'écran pour être affiché en entier, il faut afficher le menu au dessus et pas en dessous du bouton
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 juil. 2005 à 17:46
hBtn c'est l'handle du bouton et c'est un pote qui me l'a filé
J'aurais aussi pu demander à GetDlgItem(hdlg, IDC_LISTE1);
hdlg c'est l'handle du dialogue, mais celui la tu dois deja l'avoir