Anybody have analog of GUICtrlSetResizing function for _GUICtrlComboBox_Create control?
3 posts in this topic
It's the fist time i'll try to make a gui resizable and i have a problem with it.
#include <GUIConstantsEx.au3> #include <WindowsConstants.Au3> $hGUI = GUICreate("I'm a test", 521, 372, -1, -1, $WS_SIZEBOX + $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX) GUICtrlCreateLabel("I'm a label", 35, 253, 55, 17) GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER + $GUI_DOCKHEIGHT) $Input = GUICtrlCreateInput("", 12, 269, 100, 21) GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER + $GUI_DOCKHEIGHT) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd When is "normal" is the label is centered with the input, when i'm maximize the label is not centered in the input. I know the input become bigger in width and i like it, but there is a way to get the label centered with the input when maximize the window? Thanks
I have written a program that among other things displays data in 3 listboxes. when the window has its original size, it works fine. But if I increase the size the window vertically the listboxes stretch as they should, and I can't select their top entries with the mouse . The last listbox entries are not affected. The more I stretch the window vertically, the more entries become out of reach by the mouse. Also the highest entry that can be selected by the mouse is iffy. It has to be low on the entry.
But the keyboard arrow keys can select them with no problem.
The listboxes are resized with the window because of commands like
GUICtrlSetResizing ( $ControlHandle, $GUI_DOCKTOP + $GUI_DOCKSIZE + $GUI_DOCKRIGHT )
and that's probably where there is a problem with listview selection.
My OS is windows 2008R1, and I've tried this using both beta 17 and version 18.104.22.168, if that has anything to do with it.
Here is the code to build a sample UI to reproduce the problem. It puts a list the folders into a listbox. Run it, try to select the top entries, then stretch the window vertically and try to select the top entries:
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Opt('MustDeclareVars', 1) Dim $Win, $lblFolderList, $lbFolders Main () Func Main () $Win = GUICreate("Test Script", @DesktopWidth / 2 - 255, 188, 192, @DesktopHeight / 2 - 45, $WS_OVERLAPPEDWINDOW);$WS_SIZEBOX + $WS_MINIMIZE) $lblFolderList = GUICtrlCreateLabel("Folders List", 4, 8, 37, 17) GUICtrlSetResizing ( $lblFolderList, $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKTOP ) $lbFolders = GUICtrlCreateList("", 4, 24, 65, 168) GUICtrlSetResizing ( $lbFolders, $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKTOP + $GUI_DOCKBOTTOM ) GUISetState(@SW_SHOW) PopulateFolders() GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit") GUISetState() While 1 Sleep ( 1000 ) WEnd EndFunc Func OnExit() Exit EndFunc Func PopulateFolders() Dim $Search, $Found Dim $InitDir = "C:\" GUICtrlSetData ( $lbFolders, "|" ) $Search = FileFindFirstFile ( $InitDir & "\*.*" ) if $Search > -1 Then While 1 $Found = FileFindNextFile ( $Search ) if @error Then ExitLoop If @extended = 1 Then GUICtrlSetData ( $lbFolders, $Found ) EndIf WEnd EndIf EndFunc