[v4 beta 9] GadgetHeight et ComboBox [Résolu]

Archive.
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

[v4 beta 9] GadgetHeight et ComboBox [Résolu]

Message 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
Vive le temps libre !
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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 ) :lol: , 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
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message 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. :wink:

Merci encore

a+
Stef
Vive le temps libre !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.

Code : Tout sélectionner

GetComboBoxInfo_(GadgetID(1), @Info)
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Merci Chris 8)
Vive le temps libre !
LeCyb
Messages : 273
Inscription : dim. 26/déc./2004 20:49

Message 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 :)
Vive le thread-safe !
Répondre