Page 1 sur 1
[v4 beta 9] GadgetHeight et ComboBox [Résolu]
Publié : mer. 05/avr./2006 7:27
par olivier
La hauteur d'une combobox est de 21, même pour une combo initialisée à 200, Est-ce normal , ou est-ce un Bug ?
Si ce n'est pas un bug, comment avoir la hauteur d'une combo (ici :200)
Bonne journée
Code : Tout sélectionner
OpenWindow (0,10,10,200,200, "ess", #PB_Window_SystemMenu )
CreateGadgetList ( WindowID (0))
ComboBoxGadget(1,10,10,100,200)
Debug GadgetHeight(1)
Repeat
event= WaitWindowEvent ()
Select event
Case #PB_Event_Gadget ; *****************Choix d'un bouton
Select EventGadget()
EndSelect
EndSelect
Until event=#WM_CLOSE
Publié : mer. 05/avr./2006 10:42
par Dr. Dri
Ce qu'il faudrait c'est avoir des fonctions GetGadgetInnerWidth/Height. La taille du combobox dépendra de la police en cours et c'est pas le seul à avoir deux types de taille.
Y'a aussi le panelgadget, le scrollareagadget, le mdigadget et peut-être d'autres...
Dri
Publié : mer. 05/avr./2006 13:56
par Chris
olivier a écrit :Si ce n'est pas un bug, comment avoir la hauteur d'une combo (ici :200)
Pour la réponse à la seconde question (si c'est une question )

, je fais comme ça.
Code : Tout sélectionner
Structure COMBOBOXINFO
cbSize.l
rcItem.RECT
rcButton.RECT
stateButton.l
hwndCombo.l
hwndItem.l
hwndList.l
EndStructure
Info.COMBOBOXINFO\cbSize = SizeOf(COMBOBOXINFO)
#CB_GETCOMBOBOXINFO = $0164
OpenWindow (0,10,10,200,200, "ess", #PB_Window_SystemMenu )
CreateGadgetList ( WindowID (0))
ComboBoxGadget(1,10,10,100,200)
; ***** Coordonnées du combo *****
SendMessage_(GadgetID(1), #CB_GETCOMBOBOXINFO, 0, @Info)
SendMessage_(Info\hwndCombo, #CB_GETDROPPEDCONTROLRECT, 0, Re.RECT)
; ********************************
Debug "Hauteur du combo = " + Str(Re\bottom-Re\top + Info\rcItem\top)
Repeat
event= WaitWindowEvent ()
Select event
Case #PB_Event_Gadget ; *****************Choix d'un bouton
Select EventGadget()
EndSelect
EndSelect
Until event=#WM_CLOSE
Publié : mer. 05/avr./2006 14:07
par olivier
Merci Chris
Mais il ne marche pas trop ton code chez moi ! Cela donne 0 comme hauteur.
Mais te bile pas je me suis débrouillé autrement.
Merci encore
a+
Stef
Publié : mer. 05/avr./2006 14:17
par Chris
CB_GETCOMBOBOXINFO ne fonctionne que sous XP, il me semble!
Par contre, d'après le SDK, la fonction équivalente fonctionne sous 98.
Publié : mer. 05/avr./2006 14:42
par olivier
Merci Chris

Publié : mer. 05/avr./2006 20:02
par LeCyb
La doc dit:
"...la 'Hauteur' spécifie la hauteur de la liste déroulante quand elle est visible."
Pour moi y'a donc aucun bug. Merci Chris pour l'astuce
