ComboBox height?

BlitzPlus Forums/BlitzPlus Programming/ComboBox height?

JoshK(Posted 2004) [#1]
The comboboxes always stop at about 200 pixels, and create a slider on the side to scroll down the list. This is inconvenient when you have a long list of items (like a directory of textures). Is there any way to extend the vertical size of the drop-down box?


WolRon(Posted 2004) [#2]
I, too, would like to know...


SuperDan(Posted 2005) [#3]
And so would I...


Wiebo(Posted 2005) [#4]
I never found a way to extend it.


Grey Alien(Posted 2005) [#5]
Thats pretty lame. In Delphi I made a combobox that checked the size of the form (parent) it was on and sized the dropdown to either use the max amount avaiable on the form or show all of the items if they fitted.


sswift(Posted 2005) [#6]
Maybe you could stick it inside a pane and lock the top to the top of the pane and the bottom to the bottom of it?


Sarge(Posted 2005) [#7]
I use this in blitzmax so i dont know if this will work for blitzplus but give it a go.

Const CB_SETITEMHEIGHT=339

Function ComboBoxHeight( gadget, height )
SendMessage_(gadget,CB_SETITEMHEIGHT,-1,height)
End Function



JoshK(Posted 2005) [#8]
CB_SETITEMHEIGHT sets the height of the combobox window, but has no effect on the dropdown list.

CB_SETMINVISIBLE seems to be the right message, but it always fails when I try it:
Const CB_SETMINVISIBLE=$1701

window=CreateWindow( "ComboBox demo",0,0,160,120+80 )
combobox=CreateComboBox( ClientWidth(window)/2-64,ClientHeight(window)/2-12,128,500,window )

For k=0 To 50
	AddGadgetItem combobox,"Item "+k
	Next
SelectGadgetItem combobox,0

hwnd=QueryObject(combobox,1)
result=SendMessage(hwnd,CB_SETMINVISIBLE,40,0)
If Not result Notify "SendMessage() failed."

While WaitEvent()<>$803
	If EventID()=$401
		If EventSource()=combobox
			Notify "Item selected:"+SelectedGadgetItem(combobox)
		EndIf
	EndIf
Wend

End


See the MS docs:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/comboboxes/comboboxes.asp