<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Argumentum</id>
	<title>AutoIt Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Argumentum"/>
	<link rel="alternate" type="text/html" href="https://www.autoitscript.com/wiki/Special:Contributions/Argumentum"/>
	<updated>2026-04-23T19:32:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Snippets&amp;diff=14513</id>
		<title>AutoIt Snippets</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Snippets&amp;diff=14513"/>
		<updated>2021-05-24T08:31:26Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* _IsInternetConnected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome To The AutoIt Snippets Page - ( &#039;&#039;&#039;&#039;&#039;Snippet - A short reusable piece of computer code&#039;&#039;&#039;&#039;&#039; ).  &lt;br /&gt;
&lt;br /&gt;
Snippets are generally single functions or small pieces of code which can be incorporated into a script to add extra functionality. This section covers a wide variety of subjects and uses. Examples may include anything from finding if an internet connection is working to retrieving the date Windows was installed. This page is intended to give easy access to the functions.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== _IsInternetConnected ===&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL=35302-guinness | AuthorName=guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
ConsoleWrite(&amp;quot;Internet Is Connected&amp;quot; &amp;amp; &amp;quot; = &amp;quot; &amp;amp; _IsInternetConnected() &amp;amp; @CRLF) ; ( Returns &amp;quot;True&amp;quot; Or &amp;quot;False&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Func _IsInternetConnected()&lt;br /&gt;
    Local $aReturn = DllCall(&#039;connect.dll&#039;, &#039;long&#039;, &#039;IsInternetConnected&#039;)&lt;br /&gt;
    If @error Then&lt;br /&gt;
        Return SetError(1, 0, False)&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $aReturn[0] = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsInternetConnected&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
=== _PasswordCrypt ===&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL=4920-valuater | AuthorName=Valuater&lt;br /&gt;
| ModifierURL=35302-guinness | ModifierName=guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Crypt.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $sGenericPassword_1 = &#039;Password@AutoIt&#039;, $sGenericPassword_2 = &#039;NewPassword@AutoIt&#039;, $sSavePath = @ScriptDir &amp;amp; &#039;\License.dat&#039;&lt;br /&gt;
ConsoleWrite(&#039;1. &#039; &amp;amp; _PasswordCrypt($sGenericPassword_1, $sSavePath) &amp;amp; @CRLF) ; Write the password to a file located in the @ScriptDir. The password we wrote is returned by the function.&lt;br /&gt;
ConsoleWrite(&#039;2. &#039; &amp;amp; _PasswordCrypt($sGenericPassword_1, $sSavePath) &amp;amp; @CRLF) ; Since the password has been written already, we now want to check if the user has entered the password correctly. Returns True or False.&lt;br /&gt;
ConsoleWrite(&#039;3. &#039; &amp;amp; _PasswordCrypt($sGenericPassword_2, $sSavePath, 1) &amp;amp; @CRLF) ; Overwrite the old password with a new one.&lt;br /&gt;
ConsoleWrite(&#039;4. &#039; &amp;amp; _PasswordCrypt($sGenericPassword_1, $sSavePath) &amp;amp; @CRLF) ; Check the password matches. This will fail as we&#039;re checking the old password against the new one.&lt;br /&gt;
FileDelete($sSavePath)&lt;br /&gt;
&lt;br /&gt;
Func _PasswordCrypt($sPassword, $sFilePath, $iOverwrite = 0) ; By guinness, idea by Valuater.&lt;br /&gt;
    If FileExists($sFilePath) And $iOverwrite = 0 Then&lt;br /&gt;
        Return BinaryToString(_Crypt_DecryptData(IniRead($sFilePath, &#039;PasswordKey&#039;, &#039;Password&#039;, &#039;&#039;), @ComputerName, $CALG_AES_256)) == $sPassword&lt;br /&gt;
    Else&lt;br /&gt;
        If IniWrite($sFilePath, &#039;PasswordKey&#039;, &#039;Password&#039;, _Crypt_EncryptData($sPassword, @ComputerName, $CALG_AES_256)) Then&lt;br /&gt;
            Return $sPassword&lt;br /&gt;
        EndIf&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return SetError(1, 0, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_PasswordCrypt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snippet Creation Help ==&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Creation )| Snippets Creation Examples ]]&lt;br /&gt;
&lt;br /&gt;
== AutoIt Snippets Collection ==&lt;br /&gt;
&lt;br /&gt;
=== AutoIt &amp;lt;small&amp;gt;- AutoIt Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( AutoIt Audio )| Audio Related ]] ( Last Updated - 16:58, 21 May 2012 (BST) )&lt;br /&gt;
* [[Snippets ( AutoIt )| AutoIt Miscellaneous ]] ( Last Updated - 12:22, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( AutoIt Array )| AutoIt Array Related]] ( Last Updated - 13:17, 21 May 2012 (BST) )&lt;br /&gt;
* [[Snippets ( AutoIt Mouse &amp;amp; Keyboard )| AutoIt Mouse &amp;amp; Keyboard ]] ( Last Updated - 07:52, 3 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( AutoIt String )| AutoIt String Related ]] ( Last Updated - 12:45, 1 August 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== GUI &amp;lt;small&amp;gt;- Anything GUI related.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Checkboxes )| Checkboxes &amp;amp; Radio ]] ( Last Updated - 21:04, 13 November 2012 (BST) )&lt;br /&gt;
* [[Snippets ( GUI )| GUI ]]  ( Last Updated - 12:11, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Graphics )| Graphics And Images ]] ( Last Updated - 12:37, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Combo )| Combo, Array and SQLite]] ( Last Updated - 12:37, 18 August 2015 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Hardware &amp;lt;small&amp;gt;- Hardware Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Hardware Information )| Hardware Information ]] ( Last Updated - 11:02, 30 April 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Numbers &amp;lt;small&amp;gt;- Math, Number &amp;amp; Time Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Math &amp;amp; Numbers )| Math &amp;amp; Numbers ]] ( Last Updated - 12:07, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Time &amp;amp; Date )| Time &amp;amp; Date ]] ( Last Updated - 14:11, 21 May 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous &amp;lt;small&amp;gt;- All Other Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Miscellaneous )| Miscellaneous ]] ( Last Updated - 12:35, 1 August 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Networking &amp;lt;small&amp;gt;- Network, Wireless and Internet Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Network )| Network ]] ( Last Updated - 12:33, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Internet )|Internet ]] ( Last Updated - 12:30, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Wireless )|Wireless ]] ( Last Updated - 19:19, 16 November 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Windows &amp;lt;small&amp;gt;- Windows Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( CMD ) |CMD - Commandline ]] (Last Updated - 19:24, 16 November 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Files &amp;amp; Folders )| Files &amp;amp; Folders ]] ( Last Updated - 12:16, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Registry )| Registry ]] ( Last Updated - 17:26, 18 November 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Windows Information )| Windows Information ]] ( Last Updated - 11:27, 30 April 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Windows OS )| Windows OS ]] ( Last Updated - 14:35, 21 May 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Windows Settings )| Windows Settings ]] ( Last Updated - 12:07, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Windows Users )| Windows Account Management ]] ( Last Updated - 14:13, 21 May 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
== Other Links ==&lt;br /&gt;
&lt;br /&gt;
[http://www.autoitscript.com/wiki/Free_Software Free Software Written in AutoIt]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Snippets&amp;diff=14512</id>
		<title>AutoIt Snippets</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Snippets&amp;diff=14512"/>
		<updated>2021-05-24T08:31:10Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome To The AutoIt Snippets Page - ( &#039;&#039;&#039;&#039;&#039;Snippet - A short reusable piece of computer code&#039;&#039;&#039;&#039;&#039; ).  &lt;br /&gt;
&lt;br /&gt;
Snippets are generally single functions or small pieces of code which can be incorporated into a script to add extra functionality. This section covers a wide variety of subjects and uses. Examples may include anything from finding if an internet connection is working to retrieving the date Windows was installed. This page is intended to give easy access to the functions.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== _IsInternetConnected ===&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
AuthorURL=35302-guinness | AuthorName=guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
ConsoleWrite(&amp;quot;Internet Is Connected&amp;quot; &amp;amp; &amp;quot; = &amp;quot; &amp;amp; _IsInternetConnected() &amp;amp; @CRLF) ; ( Returns &amp;quot;True&amp;quot; Or &amp;quot;False&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Func _IsInternetConnected()&lt;br /&gt;
    Local $aReturn = DllCall(&#039;connect.dll&#039;, &#039;long&#039;, &#039;IsInternetConnected&#039;)&lt;br /&gt;
    If @error Then&lt;br /&gt;
        Return SetError(1, 0, False)&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $aReturn[0] = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsInternetConnected&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
=== _PasswordCrypt ===&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL=4920-valuater | AuthorName=Valuater&lt;br /&gt;
| ModifierURL=35302-guinness | ModifierName=guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Crypt.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $sGenericPassword_1 = &#039;Password@AutoIt&#039;, $sGenericPassword_2 = &#039;NewPassword@AutoIt&#039;, $sSavePath = @ScriptDir &amp;amp; &#039;\License.dat&#039;&lt;br /&gt;
ConsoleWrite(&#039;1. &#039; &amp;amp; _PasswordCrypt($sGenericPassword_1, $sSavePath) &amp;amp; @CRLF) ; Write the password to a file located in the @ScriptDir. The password we wrote is returned by the function.&lt;br /&gt;
ConsoleWrite(&#039;2. &#039; &amp;amp; _PasswordCrypt($sGenericPassword_1, $sSavePath) &amp;amp; @CRLF) ; Since the password has been written already, we now want to check if the user has entered the password correctly. Returns True or False.&lt;br /&gt;
ConsoleWrite(&#039;3. &#039; &amp;amp; _PasswordCrypt($sGenericPassword_2, $sSavePath, 1) &amp;amp; @CRLF) ; Overwrite the old password with a new one.&lt;br /&gt;
ConsoleWrite(&#039;4. &#039; &amp;amp; _PasswordCrypt($sGenericPassword_1, $sSavePath) &amp;amp; @CRLF) ; Check the password matches. This will fail as we&#039;re checking the old password against the new one.&lt;br /&gt;
FileDelete($sSavePath)&lt;br /&gt;
&lt;br /&gt;
Func _PasswordCrypt($sPassword, $sFilePath, $iOverwrite = 0) ; By guinness, idea by Valuater.&lt;br /&gt;
    If FileExists($sFilePath) And $iOverwrite = 0 Then&lt;br /&gt;
        Return BinaryToString(_Crypt_DecryptData(IniRead($sFilePath, &#039;PasswordKey&#039;, &#039;Password&#039;, &#039;&#039;), @ComputerName, $CALG_AES_256)) == $sPassword&lt;br /&gt;
    Else&lt;br /&gt;
        If IniWrite($sFilePath, &#039;PasswordKey&#039;, &#039;Password&#039;, _Crypt_EncryptData($sPassword, @ComputerName, $CALG_AES_256)) Then&lt;br /&gt;
            Return $sPassword&lt;br /&gt;
        EndIf&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return SetError(1, 0, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_PasswordCrypt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snippet Creation Help ==&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Creation )| Snippets Creation Examples ]]&lt;br /&gt;
&lt;br /&gt;
== AutoIt Snippets Collection ==&lt;br /&gt;
&lt;br /&gt;
=== AutoIt &amp;lt;small&amp;gt;- AutoIt Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( AutoIt Audio )| Audio Related ]] ( Last Updated - 16:58, 21 May 2012 (BST) )&lt;br /&gt;
* [[Snippets ( AutoIt )| AutoIt Miscellaneous ]] ( Last Updated - 12:22, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( AutoIt Array )| AutoIt Array Related]] ( Last Updated - 13:17, 21 May 2012 (BST) )&lt;br /&gt;
* [[Snippets ( AutoIt Mouse &amp;amp; Keyboard )| AutoIt Mouse &amp;amp; Keyboard ]] ( Last Updated - 07:52, 3 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( AutoIt String )| AutoIt String Related ]] ( Last Updated - 12:45, 1 August 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== GUI &amp;lt;small&amp;gt;- Anything GUI related.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Checkboxes )| Checkboxes &amp;amp; Radio ]] ( Last Updated - 21:04, 13 November 2012 (BST) )&lt;br /&gt;
* [[Snippets ( GUI )| GUI ]]  ( Last Updated - 12:11, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Graphics )| Graphics And Images ]] ( Last Updated - 12:37, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Combo )| Combo, Array and SQLite]] ( Last Updated - 12:37, 18 August 2015 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Hardware &amp;lt;small&amp;gt;- Hardware Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Hardware Information )| Hardware Information ]] ( Last Updated - 11:02, 30 April 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Numbers &amp;lt;small&amp;gt;- Math, Number &amp;amp; Time Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Math &amp;amp; Numbers )| Math &amp;amp; Numbers ]] ( Last Updated - 12:07, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Time &amp;amp; Date )| Time &amp;amp; Date ]] ( Last Updated - 14:11, 21 May 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous &amp;lt;small&amp;gt;- All Other Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Miscellaneous )| Miscellaneous ]] ( Last Updated - 12:35, 1 August 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Networking &amp;lt;small&amp;gt;- Network, Wireless and Internet Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( Network )| Network ]] ( Last Updated - 12:33, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Internet )|Internet ]] ( Last Updated - 12:30, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Wireless )|Wireless ]] ( Last Updated - 19:19, 16 November 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
=== Windows &amp;lt;small&amp;gt;- Windows Examples.&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* [[Snippets ( CMD ) |CMD - Commandline ]] (Last Updated - 19:24, 16 November 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Files &amp;amp; Folders )| Files &amp;amp; Folders ]] ( Last Updated - 12:16, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Registry )| Registry ]] ( Last Updated - 17:26, 18 November 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Windows Information )| Windows Information ]] ( Last Updated - 11:27, 30 April 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Windows OS )| Windows OS ]] ( Last Updated - 14:35, 21 May 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Windows Settings )| Windows Settings ]] ( Last Updated - 12:07, 1 August 2012 (BST) )&lt;br /&gt;
* [[Snippets ( Windows Users )| Windows Account Management ]] ( Last Updated - 14:13, 21 May 2012 (BST) )&lt;br /&gt;
&lt;br /&gt;
== Other Links ==&lt;br /&gt;
&lt;br /&gt;
[http://www.autoitscript.com/wiki/Free_Software Free Software Written in AutoIt]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=14511</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=14511"/>
		<updated>2021-05-22T19:38:06Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Information about Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	Local $aFileList = _FileListToArray(@ScriptDir, &#039;NO_EXISTING_FILE.TEST&#039;)&lt;br /&gt;
	If @error Then ; check if _FileListToArray() function return any error&lt;br /&gt;
		MsgBox($MB_ICONERROR, &#039;_FileListToArray&#039;, &#039;@error = &#039; &amp;amp; @error &amp;amp; @CRLF &amp;amp; &#039;@extended = &#039; &amp;amp; @extended) ; show error message&lt;br /&gt;
		Return ; return / exit from function to prevent unexpected further error&#039;s&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $iFile_idx = 1 To $aFileList[0]&lt;br /&gt;
		FileRead($aFileList[$iFile_idx])&lt;br /&gt;
		; any further code&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APILocaleConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPILocale.au3&amp;gt;&lt;br /&gt;
; Version: 1.01. AutoIt: V3.3.14.2&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; _&lt;br /&gt;
		@CRLF &amp;amp; @CRLF &amp;amp; &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ? &#039;X64&#039; : &#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; _&lt;br /&gt;
		@CRLF &amp;amp; &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039;/&#039; &amp;amp; (@OSServicePack &amp;lt;&amp;gt; &amp;quot;&amp;quot; ? @OSServicePack : _&lt;br /&gt;
		RegRead(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion&amp;quot;, &amp;quot;ReleaseId&amp;quot;)) &amp;amp; _&lt;br /&gt;
		&#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
	Return _WinAPI_GetLocaleInfo(_WinAPI_GetUserDefaultLCID(), $LOCALE_SLANGUAGE)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/6-chat/ Chat] (General chat for Active Members. Not accessible to guests or search engines)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/39-developer-general-discussion/ Developer General Discussion] (General development and scripting discussions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/29-test-posting-messages/ Test Posting Messages] (This forum is emptied of all topics and posts from time to time)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/44-language-specific-discussion/ Language Specific Discussion] (Common IT Admin-related languages have their own forums. Feel free to post about any other language in the Misc forum)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/31-it-administration/  IT Administration] (Discussions about general IT related topics, administration, management and deployment)&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=156031 Google Policy Violations]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
*[https://www.autoitscript.com/forum/topic/197080-using-ui-automation-code-in-autoit/ uia explained in detail] &lt;br /&gt;
*[http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy jabsimplespy in examples section of the AutoIt forum]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as a combined COM and DLL version of AutoIt called AutoItX that allows you to add the unique features of AutoIt to your own favourite scripting or programming languages!&lt;br /&gt;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
After much research and testing, DPI Awareness is solved in the following thread with all relevant information moved to the 1st post &lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/199786-making-your-compiled-application-dpi-aware/ making-your-compiled-application-dpi-aware]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable]&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt have an agreed set of good practices ?==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146866 Forum disscusion on good coding practices in AutoIt] &lt;br /&gt;
Wiki related resources:&lt;br /&gt;
* [https://www.autoitscript.com/wiki/Best_coding_practices Best coding practices] &lt;br /&gt;
* [https://www.autoitscript.com/wiki/Variables_-_using_Global,_Local,_Static_and_ByRef Variables - using Global, Local, Static and ByRef] &lt;br /&gt;
* [https://www.autoitscript.com/wiki/UDF-spec UDF-spec]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=14509</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=14509"/>
		<updated>2021-05-19T16:26:46Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Information about Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	Local $aFileList = _FileListToArray(@ScriptDir, &#039;NO_EXISTING_FILE.TEST&#039;)&lt;br /&gt;
	If @error Then ; check if _FileListToArray() function return any error&lt;br /&gt;
		MsgBox($MB_ICONERROR, &#039;_FileListToArray&#039;, &#039;@error = &#039; &amp;amp; @error &amp;amp; @CRLF &amp;amp; &#039;@extended = &#039; &amp;amp; @extended) ; show error message&lt;br /&gt;
		Return ; return / exit from function to prevent unexpected further error&#039;s&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $iFile_idx = 1 To $aFileList[0]&lt;br /&gt;
		FileRead($aFileList[$iFile_idx])&lt;br /&gt;
		; any further code&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APILocaleConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPILocale.au3&amp;gt;&lt;br /&gt;
; Version: 1.01. AutoIt: V3.3.14.2&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ? &#039;X64&#039; : &#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039;/&#039; &amp;amp; (@OSServicePack &amp;lt;&amp;gt; &amp;quot;&amp;quot; ? @OSServicePack : _&lt;br /&gt;
		RegRead(&amp;quot;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion&amp;quot;, &amp;quot;ReleaseId&amp;quot;)) &amp;amp; _&lt;br /&gt;
		&#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
	Return _WinAPI_GetLocaleInfo(_WinAPI_GetUserDefaultLCID(), $LOCALE_SLANGUAGE)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/6-chat/ Chat] (General chat for Active Members. Not accessible to guests or search engines)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/39-developer-general-discussion/ Developer General Discussion] (General development and scripting discussions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/29-test-posting-messages/ Test Posting Messages] (This forum is emptied of all topics and posts from time to time)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/44-language-specific-discussion/ Language Specific Discussion] (Common IT Admin-related languages have their own forums. Feel free to post about any other language in the Misc forum)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/31-it-administration/  IT Administration] (Discussions about general IT related topics, administration, management and deployment)&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=156031 Google Policy Violations]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
*[https://www.autoitscript.com/forum/topic/197080-using-ui-automation-code-in-autoit/ uia explained in detail] &lt;br /&gt;
*[http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy jabsimplespy in examples section of the AutoIt forum]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as a combined COM and DLL version of AutoIt called AutoItX that allows you to add the unique features of AutoIt to your own favourite scripting or programming languages!&lt;br /&gt;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
After much research and testing, DPI Awareness is solved in the following thread with all relevant information moved to the 1st post &lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/199786-making-your-compiled-application-dpi-aware/ making-your-compiled-application-dpi-aware]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable]&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt have an agreed set of good practices ?==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146866 Forum disscusion on good coding practices in AutoIt] &lt;br /&gt;
Wiki related resources:&lt;br /&gt;
* [https://www.autoitscript.com/wiki/Best_coding_practices Best coding practices] &lt;br /&gt;
* [https://www.autoitscript.com/wiki/Variables_-_using_Global,_Local,_Static_and_ByRef Variables - using Global, Local, Static and ByRef] &lt;br /&gt;
* [https://www.autoitscript.com/wiki/UDF-spec UDF-spec]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14358</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14358"/>
		<updated>2020-06-30T18:41:54Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;AutoItConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 30 ; 30 pixels for &amp;quot;dramatic effect&amp;quot;, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8) ; Left, Top, Right, Bottom&lt;br /&gt;
Global $nEdgeBorderWidth[4] = [0, 0, 0, 0] ; Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
	Local $bNewStyle = False, $idBtnStyle = GUICtrlCreateButton(&amp;quot;Change Style&amp;quot;, 50, 50, 200, 25)&lt;br /&gt;
	GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				GUIDelete()&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
			Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE ; should not change to this style while maximized&lt;br /&gt;
				GUICtrlSetState($idBtnStyle, (BitAND(WinGetState($hGUI), $WIN_STATE_MAXIMIZED) ? $GUI_DISABLE : $GUI_ENABLE))&lt;br /&gt;
&lt;br /&gt;
			Case $idBtnStyle&lt;br /&gt;
				$bNewStyle = Not $bNewStyle&lt;br /&gt;
				If $bNewStyle Then&lt;br /&gt;
					GUISetStyle(BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))&lt;br /&gt;
					Dim $nEdgeBorderWidth[4] = [-7, 0, 7, 7] ; adjusting for Windows 10 border scheme&lt;br /&gt;
				Else&lt;br /&gt;
					GUISetStyle($GUI_SS_DEFAULT_GUI)&lt;br /&gt;
					Dim $nEdgeBorderWidth[4] = [0, 0, 0, 0]&lt;br /&gt;
				EndIf&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, ($bNewStyle ? &#039;Undo Style&#039; : &#039;Change Style&#039;))&lt;br /&gt;
				GUIStyleRefresh($hGUI)&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func GUIStyleRefresh($hWnd)&lt;br /&gt;
	Local $aWinPos = WinGetPos($hWnd)&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, @error)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2] - 1, $aWinPos[3] - 1)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2], $aWinPos[3])&lt;br /&gt;
EndFunc   ;==&amp;gt;GUIStyleRefresh&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
	; original code at https://www.autoitscript.com/forum/topic/24342-form-snap/&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 1000 Then&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos()                                  ;  These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos) ;  the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position on another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG                           ;  in less than a second.&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-windowpos?redirectedfrom=MSDN&lt;br /&gt;
	$stWinPos = DllStructCreate(&amp;quot;hwnd hwnd;hwnd hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam) ; $tagWINDOWPOS&lt;br /&gt;
	$nLeft    = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop     = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight   = DllStructGetData($aData[1], 3) - $stWinPos.cx&lt;br /&gt;
	$nBottom  = DllStructGetData($aData[1], 4) - $stWinPos.cy&lt;br /&gt;
&lt;br /&gt;
	If BitAND($nEdge, 1) And Abs($nLeft   - $stWinPos.x) &amp;lt;= $nGap Then $stWinPos.x = $nLeft   + $nEdgeBorderWidth[0]&lt;br /&gt;
	If BitAND($nEdge, 4) And Abs($nRight  - $stWinPos.x) &amp;lt;= $nGap Then $stWinPos.x = $nRight  + $nEdgeBorderWidth[2]&lt;br /&gt;
	If BitAND($nEdge, 8) And Abs($nBottom - $stWinPos.y) &amp;lt;= $nGap Then $stWinPos.y = $nBottom + $nEdgeBorderWidth[3]&lt;br /&gt;
	If BitAND($nEdge, 2) And Abs($nTop    - $stWinPos.y) &amp;lt;= $nGap Then $stWinPos.y = $nTop    + $nEdgeBorderWidth[1]&lt;br /&gt;
&lt;br /&gt;
	Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;MY_WM_WINDOWPOSCHANGING&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14356</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14356"/>
		<updated>2020-06-26T06:05:59Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;AutoItConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 30 ; 30 pixels for &amp;quot;dramatic effect&amp;quot;, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8) ; Left, Top, Right, Bottom&lt;br /&gt;
Global $nEdgeBorderWidth[4] = [0, 0, 0, 0] ; Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
	Local $bNewStyle = False, $idBtnStyle = GUICtrlCreateButton(&amp;quot;Change Style&amp;quot;, 50, 50, 200, 25)&lt;br /&gt;
	GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				GUIDelete()&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
			Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE ; should not change to this style while maximized&lt;br /&gt;
				GUICtrlSetState($idBtnStyle, (BitAND(WinGetState($hGUI), $WIN_STATE_MAXIMIZED) ? $GUI_DISABLE : $GUI_ENABLE))&lt;br /&gt;
&lt;br /&gt;
			Case $idBtnStyle&lt;br /&gt;
				$bNewStyle = Not $bNewStyle&lt;br /&gt;
				If $bNewStyle Then&lt;br /&gt;
					GUISetStyle(BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))&lt;br /&gt;
					Dim $nEdgeBorderWidth[4] = [-7, 0, 7, 7] ; adjusting for Windows 10 border scheme&lt;br /&gt;
				Else&lt;br /&gt;
					GUISetStyle($GUI_SS_DEFAULT_GUI)&lt;br /&gt;
					Dim $nEdgeBorderWidth[4] = [0, 0, 0, 0]&lt;br /&gt;
				EndIf&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, ($bNewStyle ? &#039;Undo Style&#039; : &#039;Change Style&#039;))&lt;br /&gt;
				GUIStyleRefresh($hGUI)&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func GUIStyleRefresh($hWnd)&lt;br /&gt;
	Local $aWinPos = WinGetPos($hWnd)&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, @error)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2] - 1, $aWinPos[3] - 1)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2], $aWinPos[3])&lt;br /&gt;
EndFunc   ;==&amp;gt;GUIStyleRefresh&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
	; original code at https://www.autoitscript.com/forum/topic/24342-form-snap/&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 1000 Then&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos()                                  ;  These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos) ;  the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position on another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG                           ;  in less than a second.&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-windowpos?redirectedfrom=MSDN&lt;br /&gt;
	$stWinPos = DllStructCreate(&amp;quot;hwnd hwnd;hwnd hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam) ; $tagWINDOWPOS&lt;br /&gt;
	$nLeft    = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop     = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight   = DllStructGetData($aData[1], 3) - $stWinPos.cx&lt;br /&gt;
	$nBottom  = DllStructGetData($aData[1], 4) - $stWinPos.cy&lt;br /&gt;
&lt;br /&gt;
	If BitAND($nEdge, 1) And Abs($nLeft   - $stWinPos.x) &amp;lt;= $nGap Then $stWinPos.x = $nLeft   + $nEdgeBorderWidth[0]&lt;br /&gt;
	If BitAND($nEdge, 2) And Abs($nTop    - $stWinPos.y) &amp;lt;= $nGap Then $stWinPos.y = $nTop    + $nEdgeBorderWidth[1]&lt;br /&gt;
	If BitAND($nEdge, 4) And Abs($nRight  - $stWinPos.x) &amp;lt;= $nGap Then $stWinPos.x = $nRight  + $nEdgeBorderWidth[2]&lt;br /&gt;
	If BitAND($nEdge, 8) And Abs($nBottom - $stWinPos.y) &amp;lt;= $nGap Then $stWinPos.y = $nBottom + $nEdgeBorderWidth[3]&lt;br /&gt;
&lt;br /&gt;
	Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;MY_WM_WINDOWPOSCHANGING&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14355</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14355"/>
		<updated>2020-06-26T06:05:08Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;AutoItConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 30 ; 30 pixels for &amp;quot;dramatic effect&amp;quot;, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8) ; Left, Top, Right, Bottom&lt;br /&gt;
Global $nEdgeBorderWidth[4] = [0, 0, 0, 0] ; Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
	Local $bNewStyle = False, $idBtnStyle = GUICtrlCreateButton(&amp;quot;Change Style&amp;quot;, 50, 50, 200, 25)&lt;br /&gt;
	GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				GUIDelete()&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
			Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE ; should not change to this style while maximized&lt;br /&gt;
				GUICtrlSetState($idBtnStyle, (BitAND(WinGetState($hGUI), $WIN_STATE_MAXIMIZED) ? $GUI_DISABLE : $GUI_ENABLE))&lt;br /&gt;
&lt;br /&gt;
			Case $idBtnStyle&lt;br /&gt;
				$bNewStyle = Not $bNewStyle&lt;br /&gt;
				If $bNewStyle Then&lt;br /&gt;
					GUISetStyle(BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))&lt;br /&gt;
					Dim $nEdgeBorderWidth[4] = [-7, 0, 7, 7] ; adjusting for Windows 10 border scheme&lt;br /&gt;
				Else&lt;br /&gt;
					GUISetStyle($GUI_SS_DEFAULT_GUI)&lt;br /&gt;
					Dim $nEdgeBorderWidth[4] = [0, 0, 0, 0]&lt;br /&gt;
				EndIf&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, ($bNewStyle ? &#039;Undo Style&#039; : &#039;Change Style&#039;))&lt;br /&gt;
				GUIStyleRefresh($hGUI)&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func GUIStyleRefresh($hWnd)&lt;br /&gt;
	Local $aWinPos = WinGetPos($hWnd)&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, @error)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2] - 1, $aWinPos[3] - 1)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2], $aWinPos[3])&lt;br /&gt;
EndFunc   ;==&amp;gt;GUIStyleRefresh&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
	; original code at https://www.autoitscript.com/forum/topic/24342-form-snap/&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 1000 Then&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos()                                  ;  These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos) ;  the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG                           ;  in less than a second.&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-windowpos?redirectedfrom=MSDN&lt;br /&gt;
	$stWinPos = DllStructCreate(&amp;quot;hwnd hwnd;hwnd hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam) ; $tagWINDOWPOS&lt;br /&gt;
	$nLeft    = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop     = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight   = DllStructGetData($aData[1], 3) - $stWinPos.cx&lt;br /&gt;
	$nBottom  = DllStructGetData($aData[1], 4) - $stWinPos.cy&lt;br /&gt;
&lt;br /&gt;
	If BitAND($nEdge, 1) And Abs($nLeft   - $stWinPos.x) &amp;lt;= $nGap Then $stWinPos.x = $nLeft   + $nEdgeBorderWidth[0]&lt;br /&gt;
	If BitAND($nEdge, 2) And Abs($nTop    - $stWinPos.y) &amp;lt;= $nGap Then $stWinPos.y = $nTop    + $nEdgeBorderWidth[1]&lt;br /&gt;
	If BitAND($nEdge, 4) And Abs($nRight  - $stWinPos.x) &amp;lt;= $nGap Then $stWinPos.x = $nRight  + $nEdgeBorderWidth[2]&lt;br /&gt;
	If BitAND($nEdge, 8) And Abs($nBottom - $stWinPos.y) &amp;lt;= $nGap Then $stWinPos.y = $nBottom + $nEdgeBorderWidth[3]&lt;br /&gt;
&lt;br /&gt;
	Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;MY_WM_WINDOWPOSCHANGING&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14354</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14354"/>
		<updated>2020-06-26T05:37:03Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;AutoItConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 30 ; 30 pixels for &amp;quot;dramatic effect&amp;quot;, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8) ; Left, Top, Right, Bottom&lt;br /&gt;
Global $nEdgeBorderWidth[4] = [0, 0, 0, 0] ; Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
	Local $bNewStyle = False, $idBtnStyle = GUICtrlCreateButton(&amp;quot;Change Style&amp;quot;, 50, 50, 200, 25)&lt;br /&gt;
	GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				GUIDelete()&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
			Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE ; should not change to this style while maximized&lt;br /&gt;
				GUICtrlSetState($idBtnStyle, (BitAND(WinGetState($hGUI), $WIN_STATE_MAXIMIZED) ? $GUI_DISABLE : $GUI_ENABLE))&lt;br /&gt;
&lt;br /&gt;
			Case $idBtnStyle&lt;br /&gt;
				$bNewStyle = Not $bNewStyle&lt;br /&gt;
				If $bNewStyle Then&lt;br /&gt;
					GUISetStyle(BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))&lt;br /&gt;
					Dim $nEdgeBorderWidth[4] = [-7, 0, 7, 7] ; adjusting for Windows 10 border scheme&lt;br /&gt;
				Else&lt;br /&gt;
					GUISetStyle($GUI_SS_DEFAULT_GUI)&lt;br /&gt;
					Dim $nEdgeBorderWidth[4] = [0, 0, 0, 0]&lt;br /&gt;
				EndIf&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, ($bNewStyle ? &#039;Undo Style&#039; : &#039;Change Style&#039;))&lt;br /&gt;
				GUIStyleRefresh($hGUI)&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func GUIStyleRefresh($hWnd)&lt;br /&gt;
	Local $aWinPos = WinGetPos($hWnd)&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, @error)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2] - 1, $aWinPos[3] - 1)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2], $aWinPos[3])&lt;br /&gt;
EndFunc   ;==&amp;gt;GUIStyleRefresh&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
	; original code at https://www.autoitscript.com/forum/topic/24342-form-snap/&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 1000 Then&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos() ;                                   These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos) ;   the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG ;                            in less than a second.&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-windowpos?redirectedfrom=MSDN&lt;br /&gt;
	$stWinPos = DllStructCreate(&amp;quot;hwnd hwnd;hwnd hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam) ; $tagWINDOWPOS&lt;br /&gt;
	$nLeft    = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop     = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight   = DllStructGetData($aData[1], 3) - $stWinPos.cx&lt;br /&gt;
	$nBottom  = DllStructGetData($aData[1], 4) - $stWinPos.cy&lt;br /&gt;
&lt;br /&gt;
	If BitAND($nEdge, 1) And Abs($nLeft   - $stWinPos.x) &amp;lt;= $nGap Then $stWinPos.x = $nLeft   + $nEdgeBorderWidth[0]&lt;br /&gt;
	If BitAND($nEdge, 2) And Abs($nTop    - $stWinPos.y) &amp;lt;= $nGap Then $stWinPos.y = $nTop    + $nEdgeBorderWidth[1]&lt;br /&gt;
	If BitAND($nEdge, 4) And Abs($nRight  - $stWinPos.x) &amp;lt;= $nGap Then $stWinPos.x = $nRight  + $nEdgeBorderWidth[2]&lt;br /&gt;
	If BitAND($nEdge, 8) And Abs($nBottom - $stWinPos.y) &amp;lt;= $nGap Then $stWinPos.y = $nBottom + $nEdgeBorderWidth[3]&lt;br /&gt;
&lt;br /&gt;
	Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;MY_WM_WINDOWPOSCHANGING&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14353</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14353"/>
		<updated>2020-06-25T03:58:25Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;AutoItConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 30 ; 30 pixels for &amp;quot;dramatic effect&amp;quot;, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
Global $nEdgeBorderWidth[4] = [0, 0, 0, 0] ; Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
Global $bNewStyle = False, $idBtnStyle = GUICtrlCreateButton(&amp;quot;Change Style&amp;quot;, 50, 50, 200, 25)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
		Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE ; should not change to this style while maximized&lt;br /&gt;
			GUICtrlSetState($idBtnStyle, (BitAND(WinGetState($hGUI), $WIN_STATE_MAXIMIZED) ? $GUI_DISABLE : $GUI_ENABLE))&lt;br /&gt;
&lt;br /&gt;
		Case $idBtnStyle&lt;br /&gt;
			$bNewStyle = Not $bNewStyle&lt;br /&gt;
			If $bNewStyle Then&lt;br /&gt;
				GUISetStyle(BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP))&lt;br /&gt;
				Dim $nEdgeBorderWidth[4] = [-7, 0, 7, 7] ; adjusting for Windows 10 border scheme&lt;br /&gt;
			Else&lt;br /&gt;
				GUISetStyle($GUI_SS_DEFAULT_GUI)&lt;br /&gt;
				Dim $nEdgeBorderWidth[4] = [0, 0, 0, 0]&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($idBtnStyle, ($bNewStyle ? &#039;Undo Style&#039; : &#039;Change Style&#039;))&lt;br /&gt;
			GUIStyleRefresh($hGUI)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func GUIStyleRefresh($hWnd)&lt;br /&gt;
	Local $aWinPos = WinGetPos($hWnd)&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, @error)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2] - 1, $aWinPos[3] - 1)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2], $aWinPos[3])&lt;br /&gt;
EndFunc&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
	; original code at https://www.autoitscript.com/forum/topic/24342-form-snap/&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
	Local Static $tagWINDOWPOS = &amp;quot;hwnd hwnd;hwnd hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;&lt;br /&gt;
	; https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-windowpos?redirectedfrom=MSDN&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 1000 Then&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos() ;                                   These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos);   the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG ;                            in less than a second.&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	$stWinPos = DllStructCreate($tagWINDOWPOS, $lParam)&lt;br /&gt;
	$nLeft    = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop     = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight   = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	$nBottom  = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft   + $nEdgeBorderWidth[0])&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop    - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop    + $nEdgeBorderWidth[1])&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight  + $nEdgeBorderWidth[2])&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom + $nEdgeBorderWidth[3])&lt;br /&gt;
&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14352</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14352"/>
		<updated>2020-06-25T03:24:39Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;AutoItConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 30 ; 30 pixels for &amp;quot;dramatic effect&amp;quot;, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
Global $nEdgeBorderWidth[4] = [0, 0, 0, 0] ; Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
Global $aGUIStyle = GUIGetStyle($hGUI) ; be careful the style change after opening&lt;br /&gt;
Global $bNewStyle = False, $idBtnStyle = GUICtrlCreateButton(&amp;quot;Set Style&amp;quot;, 45, 50, 150, 20)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
		Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE ; should not change to this style while maximized&lt;br /&gt;
			GUICtrlSetState($idBtnStyle, (BitAND(WinGetState($hGUI), $WIN_STATE_MAXIMIZED) ? $GUI_DISABLE : $GUI_ENABLE))&lt;br /&gt;
&lt;br /&gt;
		Case $idBtnStyle&lt;br /&gt;
			If $bNewStyle Then&lt;br /&gt;
				GUISetStyle($aGUIStyle[0], $aGUIStyle[1], $hGUI)&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, &#039;Change Style&#039;)&lt;br /&gt;
				Dim $nEdgeBorderWidth[4] = [0, 0, 0, 0]&lt;br /&gt;
				$bNewStyle = False&lt;br /&gt;
			Else&lt;br /&gt;
				GUISetStyle(BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP), -1, $hGUI)&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, &#039;Undo Style&#039;)&lt;br /&gt;
				Dim $nEdgeBorderWidth[4] = [-7, 0, 7, 7] ; adjusting for Windows 10 border scheme&lt;br /&gt;
				$bNewStyle = True&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUIStyleRefresh($hGUI)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func GUIStyleRefresh($hWnd)&lt;br /&gt;
	Local $aWinPos = WinGetPos($hWnd)&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, @error)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2] - 1, $aWinPos[3] - 1)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2], $aWinPos[3])&lt;br /&gt;
EndFunc&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
	; original code at https://www.autoitscript.com/forum/topic/24342-form-snap/&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
	Local Static $tagWINDOWPOS = &amp;quot;hwnd hwnd;hwnd hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 1000 Then&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos() ;                                   These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos);   the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG ;                            in less than a second.&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-windowpos?redirectedfrom=MSDN&lt;br /&gt;
	$stWinPos = DllStructCreate($tagWINDOWPOS, $lParam)&lt;br /&gt;
	$nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	$nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft + $nEdgeBorderWidth[0])&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop    - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop + $nEdgeBorderWidth[1])&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight + $nEdgeBorderWidth[2])&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom + $nEdgeBorderWidth[3])&lt;br /&gt;
&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14351</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14351"/>
		<updated>2020-06-25T03:20:29Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;AutoItConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 30 ; 30 pixels for &amp;quot;dramatic effect&amp;quot;, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
Global $nEdgeBorderWidth[4] = [0, 0, 0, 0] ; Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
Global $aGUIStyle = GUIGetStyle($hGUI) ; be careful the style change after opening&lt;br /&gt;
Global $bNewStyle = False, $idBtnStyle = GUICtrlCreateButton(&amp;quot;Set Style&amp;quot;, 45, 50, 150, 20)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
		Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE ; should not change to this style while maximized&lt;br /&gt;
			GUICtrlSetState($idBtnStyle, (BitAND(WinGetState($hGUI), $WIN_STATE_MAXIMIZED) ? $GUI_DISABLE : $GUI_ENABLE))&lt;br /&gt;
&lt;br /&gt;
		Case $idBtnStyle&lt;br /&gt;
			If $bNewStyle Then&lt;br /&gt;
				GUISetStyle($aGUIStyle[0], $aGUIStyle[1], $hGUI)&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, &#039;Change Style&#039;)&lt;br /&gt;
				Dim $nEdgeBorderWidth[4] = [0, 0, 0, 0]&lt;br /&gt;
				$bNewStyle = False&lt;br /&gt;
			Else&lt;br /&gt;
				GUISetStyle(BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP), -1, $hGUI)&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, &#039;Undo Style&#039;)&lt;br /&gt;
				Dim $nEdgeBorderWidth[4] = [-7, 0, 7, 7] ; adjusting for Windows 10 border scheme&lt;br /&gt;
				$bNewStyle = True&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUIStyleRefresh($hGUI)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func GUIStyleRefresh($hWnd)&lt;br /&gt;
	Local $aWinPos = WinGetPos($hWnd)&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, @error)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2] - 1, $aWinPos[3] - 1)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2], $aWinPos[3])&lt;br /&gt;
EndFunc&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
	; original code at https://www.autoitscript.com/forum/topic/24342-form-snap/&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
	Local Static $tagWINDOWPOS = &amp;quot;hwnd hwnd;hwnd hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 1000 Then&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos() ;                                   These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos);   the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG ;                            in less than a second.&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-windowpos?redirectedfrom=MSDN&lt;br /&gt;
	$stWinPos = DllStructCreate($tagWINDOWPOS, $lParam)&lt;br /&gt;
	$nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	$nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft + $nEdgeBorderWidth[0])&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop + $nEdgeBorderWidth[1])&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight + $nEdgeBorderWidth[2])&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom + $nEdgeBorderWidth[3])&lt;br /&gt;
&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14350</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14350"/>
		<updated>2020-06-25T01:14:12Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;AutoItConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 30 ; 30 pixels for &amp;quot;dramatic effect&amp;quot;, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
Global $nEdgeBorderWidth[4] = [0, 0, 0, 0] ; Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
Global $aGUIStyle = GUIGetStyle($hGUI) ; be careful the style change after opening&lt;br /&gt;
Global $bNewStyle = False, $idBtnStyle = GUICtrlCreateButton(&amp;quot;Set Style&amp;quot;, 45, 50, 150, 20)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
		Case $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE ; should not change to this style while maximized&lt;br /&gt;
			GUICtrlSetState($idBtnStyle, (BitAND(WinGetState($hGUI), $WIN_STATE_MAXIMIZED) ? $GUI_DISABLE : $GUI_ENABLE))&lt;br /&gt;
&lt;br /&gt;
		Case $idBtnStyle&lt;br /&gt;
			If $bNewStyle Then&lt;br /&gt;
				GUISetStyle($aGUIStyle[0], $aGUIStyle[1], $hGUI)&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, &#039;Change Style&#039;)&lt;br /&gt;
				Dim $nEdgeBorderWidth[4] = [0, 0, 0, 0]&lt;br /&gt;
				$bNewStyle = False&lt;br /&gt;
			Else&lt;br /&gt;
				GUISetStyle(BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP), -1, $hGUI)&lt;br /&gt;
				GUICtrlSetData($idBtnStyle, &#039;Undo Style&#039;)&lt;br /&gt;
				Dim $nEdgeBorderWidth[4] = [-7, 0, 7, 7] ; adjusting for Windows 10 border scheme&lt;br /&gt;
				$bNewStyle = True&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUIStyleRefresh($hGUI)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func GUIStyleRefresh($hWnd)&lt;br /&gt;
	Local $aWinPos = WinGetPos($hWnd)&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, @error)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2] - 1, $aWinPos[3] - 1)&lt;br /&gt;
	WinMove($hWnd, &amp;quot;&amp;quot;, $aWinPos[0], $aWinPos[1], $aWinPos[2], $aWinPos[3])&lt;br /&gt;
EndFunc&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
	; original code at https://www.autoitscript.com/forum/topic/24342-form-snap/&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
	Local Static $tagWINDOWPOS = &amp;quot;hwnd hwnd;hwnd hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 1000 Then&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos() ;                                   These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos);   the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG ;                            in less than a second.&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-windowpos?redirectedfrom=MSDN&lt;br /&gt;
	$stWinPos = DllStructCreate($tagWINDOWPOS, $lParam)&lt;br /&gt;
	$nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	$nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft + $nEdgeBorderWidth[0])&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop + $nEdgeBorderWidth[1])&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight + $nEdgeBorderWidth[2])&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom + $nEdgeBorderWidth[3])&lt;br /&gt;
&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14346</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14346"/>
		<updated>2020-06-23T05:32:35Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 40 ; 40 for this demo, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 500 Then&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos() ;                                   These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos);   the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG ;                            in less than a second.&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
    $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
	$nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	$nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop    - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14345</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14345"/>
		<updated>2020-06-23T05:30:23Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 40 ; 40 for this demo, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
	#forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 500 Then&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos() ;                                   These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos);   the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG ;                            in less than a second.&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
    $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
	$nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	$nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14344</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14344"/>
		<updated>2020-06-23T05:24:30Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 40 ; 40 for this demo, 10 pixels should be good for the &amp;quot;magnetic pull&amp;quot;&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
&lt;br /&gt;
	; The Static declaration speeds up the func. ( not much, nanoseconds )&lt;br /&gt;
	Local Static $stWinPos, $tPos, $hMonitor, $aData, $nLeft, $nTop, $nRight, $nBottom, $hTimer = 0&lt;br /&gt;
&lt;br /&gt;
	If TimerDiff($hTimer) &amp;gt; 500 Then&lt;br /&gt;
		$tPos = _WinAPI_GetMousePos() ;                                   These func are very time consuming and&lt;br /&gt;
		If Not @error Then $hMonitor = _WinAPI_MonitorFromPoint($tPos);   the user is very unlikely to move the&lt;br /&gt;
		If Not @error Then $aData = _WinAPI_GetMonitorInfo($hMonitor)  ;  mouse into position of another monitor&lt;br /&gt;
		If @error Then Return $GUI_RUNDEFMSG ;                            in less than a second.&lt;br /&gt;
		$hTimer = TimerInit()&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
    $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
	$nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	$nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	$nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	$nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14343</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14343"/>
		<updated>2020-06-22T05:03:46Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( multi-monitor mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 40 ; 40 for this demo, 10 pixels should be good&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
	Local $tPos = _WinAPI_GetMousePos()&lt;br /&gt;
	Local $hMonitor = _WinAPI_MonitorFromPoint($tPos)&lt;br /&gt;
	Local $aData = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	Local $nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	Local $nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	Local $nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	Local $nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14342</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14342"/>
		<updated>2020-06-22T05:03:13Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL2 = 4574-argumentum&lt;br /&gt;
 | AuthorName2 = argumentum ( mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 40 ; 40 for this demo, 10 pixels should be good&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
	Local $tPos = _WinAPI_GetMousePos()&lt;br /&gt;
	Local $hMonitor = _WinAPI_MonitorFromPoint($tPos)&lt;br /&gt;
	Local $aData = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	Local $nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	Local $nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	Local $nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	Local $nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14341</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14341"/>
		<updated>2020-06-22T05:01:33Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
 | AuthorURL = 4574-argumentum&lt;br /&gt;
 | AuthorName = argumentum ( mod. )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 40 ; 40 for this demo, 10 pixels should be good&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
	Local $tPos = _WinAPI_GetMousePos()&lt;br /&gt;
	Local $hMonitor = _WinAPI_MonitorFromPoint($tPos)&lt;br /&gt;
	Local $aData = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	Local $nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	Local $nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	Local $nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	Local $nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14340</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=14340"/>
		<updated>2020-06-22T04:58:19Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* Snapped Window multi-monitor*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat, argumentum&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIMisc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 40 ; 40 for this demo, 10 pixels should be good&lt;br /&gt;
Global $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Snapped Window multi-monitor&amp;quot;, 500, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
	Local $tPos = _WinAPI_GetMousePos()&lt;br /&gt;
	Local $hMonitor = _WinAPI_MonitorFromPoint($tPos)&lt;br /&gt;
	Local $aData = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	Local $nLeft = DllStructGetData($aData[1], 1)&lt;br /&gt;
	Local $nTop = DllStructGetData($aData[1], 2)&lt;br /&gt;
	Local $nRight = DllStructGetData($aData[1], 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
	Local $nBottom = DllStructGetData($aData[1], 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=13679</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=13679"/>
		<updated>2017-10-21T14:37:43Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /* GUI With Scrollable TabItem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			ExitLoop&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                ExitLoop&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiConstantsEx.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiEdit.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&lt;br /&gt;
&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
	GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SPI_GETWORKAREA = 0x30&lt;br /&gt;
Global $nGap = 20, $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Snapped Window&amp;quot;, 300, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
    Local $stRect = DllStructCreate(&amp;quot;int;int;int;int&amp;quot;)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    DllCall(&amp;quot;User32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;SystemParametersInfo&amp;quot;, &amp;quot;int&amp;quot;, $SPI_GETWORKAREA, &amp;quot;int&amp;quot;, 0, &amp;quot;ptr&amp;quot;, DllStructGetPtr($stRect), &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stRect, 1)&lt;br /&gt;
    Local $nTop = DllStructGetData($stRect, 2)&lt;br /&gt;
    Local $nRight  = DllStructGetData($stRect, 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
    Local $nBottom = DllStructGetData($stRect, 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Free_Software&amp;diff=12768</id>
		<title>Free Software</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Free_Software&amp;diff=12768"/>
		<updated>2015-02-15T17:48:58Z</updated>

		<summary type="html">&lt;p&gt;Argumentum: /*  Commandline  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome To The Free Software Page ~ This page is a place to find useful free software recommended by the AutoIt community&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Archive &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.7-zip.org/  7 Zip] ~ Compression Utility ~ CyberSlug&lt;br /&gt;
* [http://legroom.net/software/uniextract Universal Extractor] ~ decompress and extract files from any type of archive or installer ~ wakillon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Antivirus, Malware &amp;amp; Spyware Programs &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.lavasoft.com/products/ad_aware_free.php Ad-Aware] ~ Antivirus Package ~ /dev/null &lt;br /&gt;
* [http://www.avast.com/index Avast] ~ Antivirus Package ~ killaz219&lt;br /&gt;
* [http://www.avira.com/en/avira-free-antivirus  Avira] ~ Antivirus Package ~ MSLx Fanboy&lt;br /&gt;
* [http://free.avg.com/gb-en/homepage AVG Free] ~ Antivirus Package ~ LxP&lt;br /&gt;
* [http://antivirus.baidu.com/en/  Baidu Antivirus] ~ Antivirus ~ wakillon&lt;br /&gt;
* [http://www.trendmicro.co.uk/products/free-tools-and-services/ Hijack This] ~ Threat Removal Tool. Should only be used if you know what you are doing. ~ jefhal&lt;br /&gt;
* [http://www.microsoft.com/security/pc-security/mse.aspx  Microsoft Security Essentials (WIN7 only)] ~ Malware/Spyware Tool ~ Valuater &lt;br /&gt;
* [http://www.safer-networking.org/en/index.html Spybot - Search &amp;amp; Destroy] ~ Spyware Removal ~ BigDod &lt;br /&gt;
* [http://www.javacoolsoftware.com/spywareblaster.html  SpywareBlaster] ~ Spyware Tool ~ forger&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Audio &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://audacity.sourceforge.net/ Audacity] ~ Audio Recording &amp;amp; Editing Tool ~ jefhal&lt;br /&gt;
* [http://mediaarea.net/en/MediaInfo MediaInfo] ~ Display technical and tag data for video and audio files ~ wakillon&lt;br /&gt;
* [http://mp3gain.sourceforge.net/ MP3Gain] ~ Normalize Music Files ~ maqleod &lt;br /&gt;
* [http://www.mp3tag.de/en/index.html Mp3tag] ~ Mp3 Metadata Editor ~ ning&lt;br /&gt;
* [http://www.synthfont.com/ SynthFont] ~ Midi Editing ~ LxP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Browsers &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.qksoft.com/favorites-management-master/  Bookmark Master] ~ IE Bookmark Manager ~ MHz&lt;br /&gt;
* [http://toolbarcleaner.com/ Toolbar Cleaner] ~  Remove unwanted toolbars, apps, add-ons, and plug-ins   ~ wakillon&lt;br /&gt;
----&lt;br /&gt;
* [http://en.browser.baidu.com/  Baidu Spark Browser] ~ Web Browser ~ wakillon&lt;br /&gt;
* [http://chromium.woolyss.com/  Chromium] ~ Web Browser ~ wakillon&lt;br /&gt;
* [http://www.mozilla.org/en-US/firefox/fx/ Firefox] ~ Web Browser ~ LxP&lt;br /&gt;
* [http://www.srware.net/en/software_srware_iron.php Iron] ~ Web Browser ~ wakillon&lt;br /&gt;
* [http://www.maxthon.com/  Maxthon] ~ Web Browser ~ MHz&lt;br /&gt;
* [http://www.opera.com/  Opera] ~ Browser ~ photonbuddy&lt;br /&gt;
* [http://support.apple.com/kb/dl1531 Safari] ~ Web Browser ~ wakillon&lt;br /&gt;
* [http://www.slimbrowser.net/en/ Slim Browser] ~ Web Browser ~ jefhal&lt;br /&gt;
* [http://browser.yandex.com/  Yandex] ~ Web Browser ~ wakillon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; CD &amp;amp; DVD Software &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.daemon-tools.cc/eng/products/dtLite  Daemon Tools Lite] ~ Virtual Disc Emulator ~ CyberSlug&lt;br /&gt;
* [http://www.deepburner.com/?r=products&amp;amp;pr=deepburner&amp;amp;prr=features  DeepBurner ] ~ CD/DVD Burner ~ MSLx Fanboy&lt;br /&gt;
* [http://www.magiciso.com/tutorials/miso-magicdisc-mount.htm MagicDisc] ~ Virtual CD/DVD-ROM ~ wakillon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Coding &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.autoitscript.com/site/ AutoIt] ~ Scripting Language ~ layer&lt;br /&gt;
* [http://www.jrsoftware.org/isinfo.php  Inno Setup] ~ Program Installer Setup ~ gcriaco&lt;br /&gt;
* [http://notepad-plus-plus.org/  Notepad++] ~ Source Code Editing ~ maqleod&lt;br /&gt;
* [http://www.pspad.com/en/ PSPad] ~ Universal Editor ~ LxP&lt;br /&gt;
* [http://www.codertools.com TotalEdit] ~ Universal Editor ~ JoeCool&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Commandline &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://curl.haxx.se/ curl] ~ Commandline Https/Http/Ftp Client ~ /dev/null&lt;br /&gt;
* [http://www.ffmpeg.org/ FFmpeg] ~ Record, convert and stream audio and video ~ wakillon&lt;br /&gt;
* [http://www.poweradmin.com/paexec PAExec] ~ Launch Remote Windows Apps (PSEXEC &#039;&#039;&#039;Free&#039;&#039;&#039; alternative) ~ Pincopanco&lt;br /&gt;
* [http://wget.addictivecode.org/FrequentlyAskedQuestions#download wGet] ~ Commandline Https/Http/Ftp Client ~ Argumentum&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Document Management &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.openoffice.org/  Apache OpenOffice] ~ Office Suite ~ MSLx Fanboy&lt;br /&gt;
* [http://www.libreoffice.org/  LibreOffice] ~ Office Suite ~ Chimaera&lt;br /&gt;
* [http://liquidninja.com/metapad/ Metapad] ~ Notepad alternative ~ LxP &lt;br /&gt;
* [http://www.vim.org/ Vim] ~ Text Editor ~ /dev/null&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Explorer Replacements &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://explorerplusplus.com/ Explorer++] ~  File manager for Windows ~ wakillon&lt;br /&gt;
* [http://www.softwareok.com/?Freeware/Q-Dir Q-Dir] ~  File manager for Windows ~ wakillon&lt;br /&gt;
* [http://wde.codeplex.com/ Windows Double Explorer] ~  File manager for Windows ~ wakillon&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; FTP / Web Servers &amp;amp; Remote &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.jtsoft.com.pl/ A-Term] ~ Terminal emulator with API (COM / DLL) ~ mlipok&lt;br /&gt;
* [http://httpd.apache.org/  Apache] ~ Web Server ~ maqleod&lt;br /&gt;
* [http://filezilla-project.org/  Filezilla] ~ FTP Client &amp;amp; Server ~ MHz&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty] ~ SSP client ~ /dev/null&lt;br /&gt;
* [http://www.realvnc.com/  RealVNC] ~ Remote Control Software ~ ning&lt;br /&gt;
* [http://www.smartftp.com/ SmartFTP] ~ FTP client ~ LxP&lt;br /&gt;
* [http://www.teamviewer.com  TeamViewer] ~ Remote Desktop Software (More features than RealVNC and its free!)&lt;br /&gt;
* [http://www.ayera.com/teraterm/ TeraTerm Pro Web] ~ Enhanced Telnet/SSH2 Client ~ /dev/null&lt;br /&gt;
* [http://winscp.net/eng/index.php WinSCP] ~ FTP over SSH ~ LxP&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Image Editing &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://blog.bahraniapps.com/ GifCam] ~  Animated gif creation  ~ wakillon&lt;br /&gt;
* [http://imageresizer.codeplex.com/  Image Resizer] ~ Image Manipulation ~ maqleod&lt;br /&gt;
* [http://inkscape.org/  Inkscape] ~ Vector Graphics Editor ~ Josbe&lt;br /&gt;
* [http://www.irfanview.com/ IrfanView] ~ Universal image editor ~ LxP&lt;br /&gt;
* [http://www.photofiltre-studio.com/pf7-en.htm PhotoFiltre] ~ Photo Editor ~ wakillon&lt;br /&gt;
* [http://picasa.google.co.uk/  Picasa] ~ Photo Editing Tool ~ jefhal&lt;br /&gt;
* [http://www.gimp.org/  The Gimp] ~ Image Editing ~ Blue_Drache &lt;br /&gt;
* [http://www.xnview.com/en/index.html  XnView] ~ Multimedia Convertor ~ LxP&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Internet Messaging &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.miranda-im.org/  Miranda] ~ Multi IM ~ Lazycat&lt;br /&gt;
* [http://www.pidgin.im/ Pidgin] ~ Formerly Gaim ~ LxP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Mail &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.poppeeper.com/ POP Peeper] ~ Email Client&amp;amp;Notifier ~ wakillon&lt;br /&gt;
* [http://www.mozilla.org/en-US/thunderbird/ Thunderbird] ~ Email software ~ LxP&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Maintenance &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://security.baidu.co.th/en/  Baidu PC Faster] ~ Advanced Optimization &amp;amp; Security Software ~ wakillon&lt;br /&gt;
* [http://www.piriform.com/ccleaner  CCleaner] ~ PC Cleanup Tool ~ Valuater&lt;br /&gt;
* [http://eraser.heidi.ie/  Eraser] ~ Stubborn File Removal ~ maqleod&lt;br /&gt;
* [http://www.free-codecs.com/download/K_Lite_Codec_Pack.htm  K-Lite Codec Pack] ~ Codecs ~ maqleod&lt;br /&gt;
* [http://www.bleepingcomputer.com/files/killbox.php  Pocket Killbox] ~ Stubborn File Removal Tool ~ jefhal&lt;br /&gt;
* [http://www.steffengerlach.de/freeware/ Scanner] ~ Hard disk usage monitor ~ LxP&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Media Players &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.foobar2000.org/ foobar2000] ~ Advanced audio player~ LxP&lt;br /&gt;
* [http://www.jetaudio.com/download/ JetAudio Basic] ~  Media Player  ~ wakillon&lt;br /&gt;
* [http://sourceforge.net/projects/guliverkli/ Media Player Classic] ~ Media player~ LxP &lt;br /&gt;
* [http://mpc-hc.sourceforge.net/ Media Player Classic ( Home Cinema Edition )] ~ HD Video player ~ Chimaera&lt;br /&gt;
* [http://www.videolan.org/vlc/  VLC ] ~ Media Player ~ MSLx Fanboy&lt;br /&gt;
* [http://www.winamp.com/ WinAmp] ~ Media player ~ killaz219&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Network &amp;amp; Internet &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://keir.net/neutron.html Neutron] ~ Accurate time ~ LxP&lt;br /&gt;
* [http://www.uvnc.com/index.php UltraVNC] ~ Visual remote computing ~ LxP&lt;br /&gt;
* [http://www.poweradmin.com/paexec PAExec] ~ Launch Remote Windows Apps (PSEXEC &#039;&#039;&#039;Free&#039;&#039;&#039; alternative) ~ Pincopanco&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Passwords &amp;amp; Encryption &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.essentialpim.com/?r=products&amp;amp;pr=essentialpim&amp;amp;prr=features  EssentialPIM] ~ Personal Information Manager ~ Josbe&lt;br /&gt;
* [http://keepass.info/  Keepass] ~ Password Manager ~ /dev/null&lt;br /&gt;
* [http://passwordsafe.sourceforge.net/  Password Safe] ~ Password Management ~ maqleod&lt;br /&gt;
* [http://www.truecrypt.org/  TrueCrypt] ~ Encryption ~ photonbuddy&lt;br /&gt;
* [https://lastpass.com/ LastPass] ~ Password Management ~ BrewManNH&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; PDF &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://get.adobe.com/reader/ Adobe Reader] ~ PDF Reader ~ LxP&lt;br /&gt;
* [http://www.cutepdf.com/Products/CutePDF/writer.asp  Cute PDF] ~ Convert To PDF ~ CyberSlug&lt;br /&gt;
* [http://www.foxitsoftware.com/Secure_PDF_Reader/  Foxit Reader] ~ PDF Reader ~ ReFran&lt;br /&gt;
* [http://www.pdfforge.org/ PDF Creator] ~ PDF writer ~ LxP &lt;br /&gt;
* [http://www.acropdf.com/products.html PDF Speedup] ~ Speed up Adobe ~ LxP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Privacy * &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;* &#039;&#039;&#039;Using some of the software in this section will prevent normal access to the AutoIt site as proxies are not allowed. Discussions on automating these types of products is not permitted.&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.privoxy.org/ Privoxy] ~ To filter incoming web pages ~ LxP &lt;br /&gt;
* [https://www.torproject.org/index.html Tor] ~ Anonymity software ~ killaz219&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Resource Management &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.angusj.com/resourcehacker/ Resource Hacker] ~ Extract exe resources ~ LxP&lt;br /&gt;
* [http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm#new XVI32] ~ Hex Editor ~ /dev/null&lt;br /&gt;
* [http://www.httrack.com/index.php  HTTTrack] ~ Website Copier ~ gcriaco&lt;br /&gt;
* [http://www.cthing.com/Meazure.asp  Meazure] ~ Window Info Tool ~ MHz&lt;br /&gt;
----&lt;br /&gt;
* [http://www.nliteos.com/index.html  nLite] ~ Win XP Deployment Tool ~ beerman&lt;br /&gt;
* [http://www.vlite.net/  vLite] ~ Win Vista Deployment Tool ~ Chimaera&lt;br /&gt;
* [http://www.rt7lite.com/  RT 7 Lite] ~ Win 7 Deployment Tool ~ Chimaera&lt;br /&gt;
* [http://www.2kr2.rt7lite.com/  RT Server Customizer] ~ Win Server 2008 R2 Deployment Tool ~ Chimaera&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Searches and Comparison &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.mythicsoft.com/page.aspx?type=agentransack&amp;amp;page=home  Agent Ransack] ~ File Finder With Regex ~ OldGuyWalking&lt;br /&gt;
* [http://tools.tortoisesvn.net/grepWin.html  grepWin] ~ File Finder With Regex ~ mlipok&lt;br /&gt;
* [http://www.wingrep.com/index.htm  WinGrep] ~ File Finder With Regex ~ mlipok&lt;br /&gt;
* [http://winmerge.org  WinMerge] ~ File Finder With Regex ~ mlipok&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Startup Applications Management &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://codestuff.obninsk.ru/products_starter.html Starter] ~  Manage Windows startup applications  ~ wakillon&lt;br /&gt;
* [http://www.windowsstartup.com/ Startup Inspector] ~  Manage Windows startup applications  ~ wakillon&lt;br /&gt;
* [http://download.cnet.com/StartupMonitor/3000-2084_4-10637539.html Startup Monitor] ~  Startup applications Monitoring  ~ wakillon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Task Scheduling &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.codeproject.com/Articles/5371/ToDoList-6-4-6-An-effective-and-flexible-way-to-ke  ToDoList] ~ Task Scheduler ~ Valik&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Video Editing &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.erightsoft.com/SUPER.html SUPER] ~  Audio &amp;amp; Video Converter, Recorder  ~ wakillon&lt;br /&gt;
* [http://www.virtualdub.org/  Virtualdub ] ~ Video Capture / Processing Utility ~ HardCopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;blockquote style=&amp;quot;background-color:white; padding:1em; border:2px solid #8FBC8F&amp;quot;&amp;gt;&#039;&#039;&#039; Learning &#039;&#039;&#039;&amp;lt;/blockquote&amp;gt; =====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* [http://www.greatis.com/utilities/justtype/ Just Type] ~  Just Type  ~ mLipok&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Argumentum</name></author>
	</entry>
</feed>