Jump to content

_GUICtrlListBox_Create and resizing


Recommended Posts

I made a _GUICtrlListBox_Create box to list some files. I want to be able to resize the control when the main GUI is resized. For some reason, GUICtrlSetResizing is not working on it when I resize. I used the example script from _GUICtrlListBox_Create along with a small tweak to show my problem. Run the script, then try to resize the GUI. You can resize, but _GUICtrlListBox_Create will not resize.

#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GUIListBox.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

Opt('MustDeclareVars', 1)

$Debug_LB = False; Check ClassName being passed to ListBox functions, set to True and use a handle to another control to see it work

Global $hListBox

_Main()

Func _Main()
    Local $hGUI

; Create GUI
    $hGUI = GUICreate("(UDF Created) List Box Create", 400, 296,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_SIZEBOX, $WS_SYSMENU  ))
    $hListBox = _GUICtrlListBox_Create($hGUI, "String upon creation", 2, 2, 396, 296)
    GUISetState()

    MsgBox(4160, "Information", "Adding Items")
    
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

; Add files
    _GUICtrlListBox_BeginUpdate($hListBox)
    _GUICtrlListBox_ResetContent($hListBox)
    _GUICtrlListBox_InitStorage($hListBox, 100, 4096)
    _GUICtrlListBox_Dir($hListBox, @WindowsDir & "\win*.exe")
    _GUICtrlListBox_AddFile($hListBox, @WindowsDir & "\Notepad.exe")
    _GUICtrlListBox_Dir($hListBox, "", $DDL_DRIVES)
    _GUICtrlListBox_Dir($hListBox, "", $DDL_DRIVES, False)
    _GUICtrlListBox_EndUpdate($hListBox)
    GUICtrlSetResizing($hListBox, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT + $GUI_DOCKRIGHT)
; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc  ;==>_Main

Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($hListBox) Then $hWndListBox = GUICtrlGetHandle($hListBox)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF); Low Word
    $iCode = BitShift($iwParam, 16); Hi Word

    Switch $hWndFrom
        Case $hListBox, $hWndListBox
            Switch $iCode
                Case $LBN_DBLCLK; Sent when the user double-clicks a string in a list box
                    _DebugPrint("$LBN_DBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                ; no return value
                Case $LBN_ERRSPACE; Sent when a list box cannot allocate enough memory to meet a specific request
                    _DebugPrint("$LBN_ERRSPACE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                ; no return value
                Case $LBN_KILLFOCUS; Sent when a list box loses the keyboard focus
                    _DebugPrint("$LBN_KILLFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                ; no return value
                Case $LBN_SELCANCEL; Sent when the user cancels the selection in a list box
                    _DebugPrint("$LBN_SELCANCEL" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                ; no return value
                Case $LBN_SELCHANGE; Sent when the selection in a list box has changed
                    _DebugPrint("$LBN_SELCHANGE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                ; no return value
                Case $LBN_SETFOCUS; Sent when a list box receives the keyboard focus
                    _DebugPrint("$LBN_SETFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                ; no return value
            EndSwitch
    EndSwitch
; Proceed the default Autoit3 internal message commands.
; You also can complete let the line out.
; !!! But only 'Return' (without any value) will not proceed
; the default Autoit3-message in the future !!!
    Return $GUI_RUNDEFMSG
EndFunc  ;==>WM_COMMAND

Func _DebugPrint($s_text)
    $s_text = StringReplace($s_text, @LF, @LF & "-->")
    ConsoleWrite("!===========================================================" & @LF & _
            "+===========================================================" & @LF & _
            "-->" & $s_text & @LF & _
            "+===========================================================" & @LF)
EndFunc  ;==>_DebugPrint
Link to comment
Share on other sites

well..... muttley

well, to give you a idea what I'm doing, I'm tweaking my Flash player. I have it working pretty well, but I wanted to change the size of the viewing area depending on the game played. Works fine, except I wanted to replace

line 281 :$Edit_1a = GUICtrlCreateList("", 120, $h - 60, 180,70)

with

;$Edit_1a =_GUICtrlListBox_Create($Form1, "",120, $h - 60, 380, 60, $LBS_MULTICOLUMN + $WS_HSCROLL)

This would allow for multi columns so I could list more games to choose from. The problem comes when I resize to suit the game. I can't move the control to where I need it.

The entire script (you will need a swf file to see how it runs.) Run the script once so it will make the folders. Then drop the swf file in the game folder and run it. The script will remember the window size when you close it.)

#include <GUIListBox.au3>
#Include <File.au3>
#include <GuiConstantsEx.au3>
;#include <GuiList.au3>
#include <Array.au3>
#include <ie.au3>
#Include <WindowsConstants.au3>

#NoTrayIcon
Opt("TrayMenuMode",1)
Opt("MustDeclareVars", 1)
Opt("TrayOnEventMode",1)
Dim $selection, $Form1, $flash, $Obj, $gui, $Obj1, $read, $swffile
Dim $selection2, $match, $html, $pending = 0, $swffile, $qst
Dim $downloaded[100], $question_a = 0, $main, $FileList, $atr
dim $st, $Edit_1, $Button_2, $Button_3, $Button_4, $lable_1
dim $Combo_5, $inir_0, $inir_1, $Button_6a, $Button_7, $lable_8
dim $restoreitem, $aboutitem, $exititem, $msg, $msg1, $inputbox
dim $oIEg, $urlname, $line, $search, $q_lable_1, $q_button_2
dim $q_button_3, $q_button_4, $msg2, $filemove, $delimit
Dim $split, $split2, $ppath, $qst2, $qst3, $renamefile, $stringchk
Dim $split3, $nMsg, $nMsg1, $size, $getz, $get2, $get2b, $getL, $getLb
Dim $get3, $get3b, $lenth, $lenthb, $ans, $sHTML, $flash1, $button_6
Dim $xx, $oDoc, $ansb, $browser, $button_7a, $Edit_1a, $reada, $oDoc1, $filename, $flash2
DIM $CSW, $inir_2a, $inir_2b, $inir_2c, $inir_2d, $wn
dim $iniP1 = @ScriptDir & "\bin\Fconfig.ini"
Dim $W, $H, $xx = 0, $readb
DIM $W = @DesktopWidth - 150
DIM $H = @DesktopHeight - 240

If FileExists($iniP1) = 0 Then
    DirCreate(@ScriptDir & "\bin")
    IniWrite(@ScriptDir & "\bin\Fconfig.ini", "settings", "hotkey", "^{F3}")
    FileWriteLine($iniP1, " ")
    DirCreate(@ScriptDir & "\games")
    DirCreate(@ScriptDir & "\bin\temp")
    DirCreate(@ScriptDir & "\bin\temp\pending_review")
EndIf
$main = GUICreate("VollyViewer", 310, 300, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
$Edit_1 = GUICtrlCreateList("", 20, 30, 170, 260)
_getlist()
GUICtrlSetData($Edit_1, $st)
$Button_2 = GUICtrlCreateButton("Play Game", 205, 30, 90, 30)
$Button_3 = GUICtrlCreateButton("Exit", 205, 68, 90, 30)
$Button_4 = GUICtrlCreateButton("Help", 205, 106, 90, 30)
$inir_1 = IniRead(@ScriptDir & "\bin\Fconfig.ini", "settings", "hotkey", "^{F3}")
$Button_6 = GUICtrlCreateButton("Hide to tray", 205, 190, 90, 30)
$Button_7 = GUICtrlCreateButton("Set Hotkey", 205, 230, 90, 30)
$lable_8 = GUICtrlCreateLabel("Hotkey = "&$inir_1, 205, 270, 90, 30)
$restoreitem = TrayCreateItem("Restore")
TrayCreateItem("")
$aboutitem = TrayCreateItem("About VollyViewer")
TrayCreateItem("")
$exititem = TrayCreateItem("Close and Exit")
TrayItemSetOnEvent ( $restoreitem, "_RestoreFromTray" )
TrayItemSetOnEvent ( $exititem, "_exitloop" )
TrayItemSetOnEvent ( $aboutitem, "_aboutVV" )

TraySetState()
TraySetClick(16)
GUISetState()
While 1
    $msg = GUIGetMsg()  
    sleep(1)
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $Button_2
            $read = GUICtrlRead($Edit_1)
            If $read = "" Then
                MsgBox(48, "Opps!", "You didn't select a game.")
            Else
                $selection = $read & ".swf"
                IniWrite($iniP1, "current_game", "1", $read)
                GUISetState(@SW_HIDE, $main)
                _viewer()
                GUISetState(@SW_SHOW, $main)
            EndIf
            ContinueLoop
        Case $msg = $Button_3;exit
            Exit

        Case $msg = $Button_4;help
            MsgBox(64, "", "to be made a html page")
        Case $msg = $Button_6
            _hide()
        Case $msg = $Button_7
            $inputbox = InputBox("Set Hotkey", "Set what you want the flash grabber hotkey to be."&@CRLF _
                    &"It is best only to use one key or two key combinations." &@CRLF _
                    &"Use ""^"" for ctrl"&@CRLF _
                    &"Use "" !"" for alt", "", " M", 290, 150)
            IniWrite(@ScriptDir & "\bin\Fconfig.ini", "settings","hotkey", $inputbox)
            GUICtrlSetData($lable_8, "Hotkey = "&$inputbox)
    EndSelect
WEnd
Exit

func _getlist()
    $FileList = _FileListToArray (@ScriptDir & "\games\", "*.swf", 1)
    _ArrayTrim($FileList, 4 ,1)
    $st = _ArrayToString($FileList, "|", 1)
EndFunc 

func _exitloop()
    Exit
EndFunc 

func _hide()
    GUISetState(@SW_HIDE, $main)
    $inir_1 = IniRead(@ScriptDir & "\bin\Fconfig.ini", "settings", "hotkey", "^{F3}")
    HotKeySet($inir_1, "_HotKeyForGrabbingSwfFiles")
EndFunc

func _HotKeyForGrabbingSwfFiles()   
    if WinActive("[CLASS:MozillaUIWindowClass]","") then
        MsgBox(0, "Error with Flash Grabber!!!", "Flash Grabber only works with Internet Explorer.", 5)
    endif
    if WinActive("[CLASS:IEFrame]", "Internet Explorer") then
        Dim $downloaded[100]
        $downloaded[0] = 0
        $oIEg = _IEAttach ("Internet Explorer", "WindowTitle")
        $urlname = _IEPropertyGet ($oIEg, "locationurl")
        InetGet($urlname, @ScriptDir & "\bin\temp\temp.html")
        $html = FileOpen(@ScriptDir & "\bin\temp\temp.html", 0)
        While 1
            $line = FileReadLine($html)
            If @error Then
                FileClose($html)
                FileDelete(@ScriptDir & "\bin\temp.html")
                MsgBox(0, "Downloaded", "Downloaded " & $downloaded[0] & " .swf Files")
                Exitloop
            EndIf
            $delimit = "'"
            $delimit &= '"'
            $split = Stringsplit($line, $delimit)
            If Not @error Then
                For $i = 1 to $split[0]
                    If StringRight($split[$i], 3) = "swf" Then
                        $match = $split[$i]
                        $split2 = Stringsplit($line, ",)")
                        match()
                    EndIf
                Next
            EndIf
        WEnd
    EndIf
    #cs;need to work on this section later
        While 1
            $line = FileReadLine($html)
            If @error Then
                FileClose($html)
                FileDelete(@ScriptDir & "\bin\temp\temp.html")
                if $downloaded[0] = 0 then
                    MsgBox(48, "Error", "Error - Unable to grab swf file.", 5)
                    exitloop
                endif
                if $downloaded[0] = 1 then
                    $search = FileFindFirstFile(@ScriptDir & "\bin\temp\*.swf")
                    $swffile = FileFindNextFile($search)
                ;MsgBox(48, "", $file)
                    $qst = GUICreate("",280, 160)
                    $q_lable_1 = GUICtrlCreateLabel("The following swf file was grabbed:"& @CRLF &"" & @CRLF _
                            &"   "& $swffile&"" & @CRLF &"" & @CRLF &"What do want to do with it?",10, 10, 300, 85 )
                    $q_button_2 = GUICtrlCreateButton("Add to Stash", 10, 120, 80, 25)
                    $q_button_3 = GUICtrlCreateButton("VollyView it!", 100, 120, 80, 25)
                    $q_button_4 = GUICtrlCreateButton("Delete it!", 190, 120, 80, 25)
                    GUISetState(@SW_SHOW,$qst )
                    while 1
                        $msg2 = GUIGetMsg()
                        Select
                            case $msg2 = $q_button_2
                                $question_a=1
                                _filequestion()
                                exitloop
                            case $msg2 = $q_button_3;run pending in player
                                $filemove = FileMove(@ScriptDir & "\bin\temp\"&$swffile, @ScriptDir & "\bin\temp\pending_review\"&$swffile, 1)
                                $pending = 1
                                $read = $swffile
                                GUIDelete($qst)
                                _viewer()
                                $question_a = 1
                                _filequestion()
                                ExitLoop
                            case $msg2 = $q_button_4
                                FileDelete(@ScriptDir & "\bin\temp\"&$swffile)
                                GUIDelete($qst)
                                Exitloop
                        EndSelect
                    WEnd
                    Exitloop
                endif
            EndIf
            $delimit = "'"
            $delimit &= '"'
            $split = Stringsplit($line, $delimit)
            If Not @error Then
                For $i = 1 to $split[0]
                    If StringRight($split[$i], 3) = "swf" Then
                        $match = $split[$i]
                        $split2 = Stringsplit($line, ",)")
                        match()
                    EndIf
                Next
            EndIf
            
        WEnd
    endif
    #ce
EndFunc

func _filequestion()
    if $question_a = 1 then
        $ppath = @ScriptDir & "\bin\temp\"&$swffile
        $question_a = 0
    endif
    if $question_a = 0 then $ppath = @ScriptDir & "\bin\temp\pending_review\"&$swffile
    $filemove = FileMove($ppath, @ScriptDir & "\games\"&$swffile, 0)
    $qst2 = MsgBox(4, "File already exist!", "The file name already exist in the stash. Do you wish to overwrite?")
    if $qst2 = 6 then
        FileMove($ppath, @ScriptDir & "\games\"&$swffile, 1)
    endif
    if $qst2 = 7 then
        $qst3 = MsgBox(32+4, "Question", "Do you wish to rename the file before adding it to the stash?"& @CRLF _
                &""& @CRLF _
                &"CLick YES to rename and save to the stash"& @CRLF _
                &"Click NO to delete the file.")
        If $qst3 = 1 then
            $renamefile = InputBox("Rename", "Type the name you want the file to be. You can use the following examples in nameing the file:"& @CRLF _
                    &""& @CRLF _
                    &"filename.swf"& @CRLF _
                    &"filename")
            $stringchk = StringRight($renamefile, 4)
            if $stringchk = ".swf" then
                FileMove($ppath, @ScriptDir & "\games\"&$renamefile, 1)
            Else
                FileMove($ppath, @ScriptDir & "\games\"&$renamefile&".swf", 1)
                _getlist()
                GUICtrlSetData($Edit_1, $st)
            endif
        endif
    endif
    GUIDelete($qst)

EndFunc

Func match()
    $split3 = StringSplit($match, "/")
    $size = InetGetSize($match)
    If $size > 100000 Then
        For $q = 1 to $downloaded[0]
            If $match = $downloaded[$q] Then
                Return
            EndIf
        Next
        InetGet($match, @ScriptDir & "\bin\temp\" & $split3[$split3[0]])
        $downloaded[0] += 1
        $downloaded[$downloaded[0]] = $match
    EndIf
EndFunc

func _RestoreFromTray()
    if WinExists("VollyViewer - ", "End Game") then GUIDelete($Form1)
    _getlist()
    GUICtrlSetData($Edit_1, $st)    
    GUISetState(@SW_SHOW, $main)
    HotKeySet($inir_1)
EndFunc

Func _viewer()
    $Form1 = GUICreate($read, $W, $H, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    $Obj = _IECreateEmbedded ()
    $browser = GUICtrlCreateObj ($Obj, 8, 8, $W - 20, $H - 70)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    _IENavigate ($Obj, 'about:blank')
    $oDoc = _IEDocGetObj ($Obj)
    $oDoc.body.style.overflow = "auto"
    $oDoc.body.style.margin = "0px"
    $oDoc.body.style.padding = "0px"
    $button_6a = GUICtrlCreateButton("End Game", 10 , $h - 60, 80, 20)
    $button_7a = GUICtrlCreateButton("Load Game", 10, $h - 35, 80, 20)
    $Edit_1a = GUICtrlCreateList("", 120, $h - 60, 180,70)
;_GUICtrlListBox_Create would be good here to allow for multi columns of the games available. Need to be 
;able to resize control to make use of it.
;$Edit_1a =_GUICtrlListBox_Create($Form1, "",120, $h - 60, 380, 60, $LBS_MULTICOLUMN + $WS_HSCROLL) 
    GUICtrlSetResizing($Edit_1a, $GUI_DOCKBOTTOM + $GUI_DOCKSIZE + $GUI_DOCKLEFT)
    GUICtrlSetResizing($button_7a, $GUI_DOCKBOTTOM + $GUI_DOCKSIZE + $GUI_DOCKLEFT)
    GUICtrlSetResizing($button_6a, $GUI_DOCKBOTTOM + $GUI_DOCKSIZE + $GUI_DOCKLEFT) 
    GUICtrlSetData($Edit_1a, $st)
    GUISetState(@SW_SHOW)
    $flash1 = @ScriptDir & "\games\" & $selection
    $sHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
    $sHTML &= 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"'
    $sHTML &= '<embed id=flashgame src="'&$flash1&'"'
    $sHTML &= 'quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" '
    $sHTML &= 'type="application/x-shockwave-flash" '
    $sHTML &= 'width="100%" height="100%" stage.scaleMode = "showAll" ></embed>'
    _IEBodyWriteHTML ($Obj, $sHTML)
    if $pending = 0 then 
        loadswf($flash1)
    EndIf   
    if $pending = 1 then
        $pending = 0
        loadswf(@ScriptDir & "\bin\temp\pending_review\"&$swffile)
    endif
    _SetViewerPOS()
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                _GetViewerPOS()
                GUIDelete($Form1)
                ExitLoop
            Case $button_6a
                _GetViewerPOS()
                GUIDelete($Form1)
                ExitLoop
            Case $button_7a 
                $readb = GUICtrlRead($Edit_1a)
                if $readb = "" then 
                    MsgBox(48, "Opps!", "You didn't select a game.")
                else
                    _GetViewerPOS()                 
                    IniWrite($iniP1, "current_game", "1", $readb)
                    _IENavigate ($Obj, 'about:blank')
                    sleep(100)
                    $flash2 = @ScriptDir & "\games\" & $readb&".swf"
                    $sHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
                    $sHTML &= 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"'
                    $sHTML &= '<embed id=flashgame src="'&$flash2&'"'
                    $sHTML &= 'quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" '
                    $sHTML &= 'type="application/x-shockwave-flash" '
                    $sHTML &= 'width="100%" height="100%" stage.scaleMode = "showAll"></embed>'
                    _IEBodyWriteHTML ($Obj, $sHTML)
                    loadswf($flash2)
                    _SetViewerPOS()
                EndIf
        EndSwitch
    WEnd
EndFunc  ;==>_viewer

func _aboutVV()
    MsgBox(64, "About", "VollyViewer by Volly."&@CRLF&""&@CRLF&" Special thanks to Lod3n, BigDaddy, and all the other"&@CRLF&"wonderful folks who helped me on this.")
EndFunc

func loadswf($filename)
    $flash = _IEGetObjByName ($Obj, "flashgame")
    $flash.Movie = $filename    
    winsettitle($gui,"","VollyViewer - "&$filename)
EndFunc


func _GetViewerPOS()
    local $readc
    $readc = IniRead($iniP1, "current_game", "1", "")
    $CSW = WinGetPos($wn)
    if IniReadSection($iniP1, $readc) = 1 then FileWriteLine($iniP1, " ")
;MsgBox(0, "", IniReadSection($iniP1, $readc))
    IniWrite($iniP1, $readc, "X ", $CSW[0])
    IniWrite($iniP1, $readc, "Y ", $CSW[1])     
    IniWrite($iniP1, $readc, "Width ", $CSW[2])
    IniWrite($iniP1, $readc, "Height ", $CSW[3])    
EndFunc 

func  _SetViewerPOS()
    local $readc
    $readc = IniRead($iniP1, "current_game", "1", "")
    $inir_2a = IniRead($iniP1, $readc, "X ", "0")
    $inir_2b = IniRead($iniP1, $readc, "Y ", "0")   
    $inir_2c = IniRead($iniP1, $readc, "Width ", $w)
    $inir_2d = IniRead($iniP1, $readc, "Height ", $h)
    WinMove("VollyViewer - "&$filename, "", $inir_2a, $inir_2b, $inir_2c, $inir_2d)
EndFunc
Link to comment
Share on other sites

Ok, this seems to solve the problem. Thanks Gary!

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <WinAPI.au3>
#include <GUIListBox.au3>
$Gui = GUICreate("Gui", 500, 500, 100, 100, BitOr($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
$List = _GUICtrlListView_Create($Gui, "", 120, 410, 370, 80, $LBS_MULTICOLUMN + $WS_HSCROLL)

GUIRegisterMsg($WM_SIZE, "WM_SIZE")

GUISetState()

While 1
    $Msg = GUIGetMsg()
    If $Msg = $GUI_EVENT_CLOSE Then Exit
WEnd

Func WM_SIZE($hWnd, $Msg, $wParam, $lParam)
    Local $iWidth = BitAND($lParam, 0xFFFF)
    Local $iHeight = BitShift($lParam, 16)
   _WinAPI_MoveWindow($List, 120, $iHeight - 90, $iWidth - 130, 80, True)   
Return $GUI_RUNDEFMSG
EndFunc
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...