Jump to content

Maximize/Restore invoked programatically - demo


Zedna
 Share

Recommended Posts

In this demo example GUI window can be maximized/restored programatically by:

- system menu

- button

- hotkey F11

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <WindowsConstants.au3>

$gui = GUICreate("Maximize/restore demo", 300, 200, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
$max_id = GUICtrlCreateDummy()
$b1 = GUICtrlCreateButton("maximize/restore", 10, 10, 120, 20 )
GUICtrlCreateLabel("F11: maximize/restore", 10, 50, 120, 20 )
GUISetState(@SW_SHOW, $gui)
 
Dim $Form1_AccelTable[1][2] = [["{F11}",$max_id]]
GUISetAccelerators($Form1_AccelTable, $gui)
 
Do
    $msg = GUIGetMsg()
    If $msg = $max_id Or $msg = $b1 Then Maximize()
Until $msg = $GUI_EVENT_CLOSE
 
Func Maximize()
    If BitAnd(WinGetState($gui), 32) = 0 Then ; not maximized
        _SendMessage($gui, $WM_SYSCOMMAND, $SC_MAXIMIZE, 0)
    Else
        _SendMessage($gui, $WM_SYSCOMMAND, $SC_RESTORE, 0)
    EndIf
    Return $GUI_RUNDEFMSG
EndFunc

EDIT: fixed list of includes for (standard) latest beta

Edited by Zedna
Link to comment
Share on other sites

Which version of AutoIt are you using? As some constants aren't available e.g. you're using GUIConstants.

This works on the latest beta of AutoIt.

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <WindowsConstants.au3>

Local $hGUI
Local $iButton, $iControl

$hGUI = GUICreate("Demo - by Zedna", 300, 200, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
$iControl = GUICtrlCreateDummy()
$iButton = GUICtrlCreateButton("Maximise/Restore", 10, 10, 120, 35)
GUICtrlCreateLabel("F11: Maximise/Restore", 15, 50, 120, 35)
GUISetState(@SW_SHOW, $hGUI)

Local $aHotKey[1][2] = [["{F11}", $iControl]]
GUISetAccelerators($aHotKey, $hGUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit

        Case $iControl, $iButton
            Maximize()

    EndSwitch
WEnd

Func Maximize()
    Local Const $SC_MAXIMIZE = 0xF030, $SC_RESTORE = 0xF120
    Local $sState
    If BitAND(WinGetState($hGUI), 32) = 0 Then ; Not Maximised
        $sState = $SC_MAXIMIZE
    Else
        $sState = $SC_RESTORE
    EndIf
    Return _SendMessage($hGUI, $WM_SYSCOMMAND, $sState)
EndFunc   ;==>Maximize
Edited by guinness

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Which version of AutoIt are you using? As some constants aren't available e.g. you're using GUIConstants.

This works on the latest beta of AutoIt.

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <WindowsConstants.au3>
...

Sorry for inconvenience and thanks for correction.

I use Autoit 3.3.7.18 but with modified copy of GUIConstants.au3

Explanation is here:

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