Jump to content
Sign in to follow this  
Zedna

Maximize/Restore invoked programatically - demo

Recommended Posts

Zedna

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

Share this post


Link to post
Share on other sites
guinness

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

Share this post


Link to post
Share on other sites
Zedna

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:

Share this post


Link to post
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
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.