Jump to content

WinMove minimum size question


Recommended Posts

I've taken a few steps back in my learning process of Autoit so that I can get better understanding of what it is that I'm doing.

This means lots of time in the help section.

With that said, the section on WinMove tells me that If the width and height are small (or negative), the window will go no smaller than 112 x 27 pixels.

Script below gets down to 1 pixel. Can anyone explain what I am misunderstanding?

#include <GUIConstantSex.au3>

$theGUI = GUICreate("", 113, 113, 192, 124)
$label1 = GUICtrlCreateLabel("XX", 0, 0, 53, 41)
GUICtrlSetFont($label1, 24, 400, 4)
GUISetState(@SW_SHOW, $theGUI)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $label1
            GetSmall($theGUI)
            GetBigAgain($theGUI)
    EndSwitch
WEnd

Func GetSmall($hGUI)
    For $i = 113 To 1 Step -0.001
        WinMove($hGUI, "", 192, 124, $i, $i)
    Next
    Sleep(1000)
EndFunc   ;==>GetSmall

Func GetBigAgain($hGUI)
    For $i = 1 To 113 Step 0.001
        WinMove($hGUI, "", 192, 124, $i + 7, $i + 33);needed the +7 & +33 to regain origional size
    Next
EndFunc   ;==>GetBigAgain
Link to comment
Share on other sites

  • Moderators

lorenkinzel,

AutoIt created GUIs are actually a form of dialog - so you can indeed get them very small. Try reducing the size of a third-party GUI - this script shows the Autoit Help window reducing to the just the icon and the 3 buttons (which is araond about the size quoted in the Help file) when I run it: ;)

#include <GUIConstantSex.au3>

$hHandle = WinGetHandle("AutoIt Help")
$aPos = WinGetPos($hHandle)

$theGUI = GUICreate("", 113, 113, 192, 124)
$label1 = GUICtrlCreateLabel("XX", 0, 0, 53, 41)
GUICtrlSetFont($label1, 24, 400, 4)
GUISetState(@SW_SHOW, $theGUI)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $label1
            GetSmall($theGUI)
            ConsoleWrite("Smallest size: " & $aSmallPos[2] & " x " & $aSmallPos[3] & @CRLF)
            Sleep(1000)
            GetBigAgain($theGUI)
    EndSwitch
WEnd

Func GetSmall($hGUI)
    For $i = $aPos[2] To 1 Step -1
        WinMove($hHandle, "", $aPos[0], $aPos[1], $i, $i)
    Next
    Sleep(10)
EndFunc   ;==>GetSmall

Func GetBigAgain($hGUI)
    For $i = 1 To $aPos[2] Step 10
        WinMove($hHandle, "", $aPos[0], $aPos[1], $i, $i)
    Next
    Sleep(10)
EndFunc   ;==>GetBigAgain
M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

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