OverviewForms framework is a group of modules used together to create rich AHK & AHK_L applications and graphical user interfaces.
FeaturesAll modules are developed so they fulfill specific goals :
How to UseIf framework is located in “\inc” folder its enough to add the following line at the end of your script :
Known bugs/issues


Forms framework is a group of modules used together to create rich AHK & AHK_L applications and graphical user interfaces.  It contains the list of optional module includes with each module designed to work with or without the framework in place.  It includes number of custom controls, extensions and useful libraries.  Form module is a backbone of the framework.


All modules are developed so they fulfill specific goals :

  • Standalone.  All modules are independent of each other unless stated differently.  You can copy any module to your script and use it without other modules.  They generally don’t depend on your script settings.
  • Standardized.  Generally, modules use the same or similar APIs whenever possible.  Functions with big number of parameters use named arguments to avoid long list of empty parameters.  Functions doing similar things are declared the same and arguments having similar purpose are named equally cross-module.
  • Clean.  They don’t create any globals and try not to influence the hosting script in any way unless specified differently.
  • Documented.  All scripts contain documentation in the source code.  You can use mkdoc script to create HTML documentation out of it by simply running it in the folder with scripts.  You can use comment remover to reduce the size of the modules.  You can also merge them into single include using ScriptMerge, which gives you the option to keep the framework and its documentation in single file.
  • Free.  All modules are open source and free.

How to Use

If framework is located in “\inc” folder its enough to add the following line at the end of your script :

#include inc
#include _Forms.ahk

After that you can use any of the Forms modules.  You might need to specify

SetWorkingDir inc

before calling modules that use 3thd party dll’s.  This is not mandatory since Add function for such modules always have DllPath parameter.

After the development is complete, you can delete all modules you didn’t use except _Forms.ahk which is used to #include modules you didn’t delete.

Optionally, you can pack your script and modules you used into the single file using ScriptMerge (if you want to distribute your script as single ahk file).


  • _ - Script initializer and set of helper functions.
  • Form - Alternative way of creating AHK GUIs.
  • Panel - Panel custom control, container for other controls.
  • Toolbar - Toolbar custom control.
  • Rebar - Rebar custom control.
  • HLink - HyperLink custom control.
  • Splitter - Splitter custom control.
  • ScrollBar - Scrollbar custom control.
  • Scroller - Makes windows scrollable.
  • HiEdit - HiEdit custom control.
  • QHTM - Qhtm custom control.
  • SpreadSheet - SpreadSheet custom control.
  • Property - Property custom control.
  • RaGrid - Ragrid custom control.
  • Win - Set of window functions.
  • Dlg - Common dialogs.
  • DockA - Docking system for AutoHotKey windows.
  • ShowMenu - Show menu from the text.


  • Align - Aligns controls inside the parent.
  • Attach - Determines how a control is resized with its parent.
  • Cursor - Sets the cursor shape for a control or a window.
  • Tooltip - Adds tooltips to GUI controls.
  • CMenu - Sets a context menu for a control.
  • CColor - Sets colors for the control.
  • ILButton - Adds an image to a Button control.
  • Font - Sets font for the control.

Known bugs/issues

  • Modules use decimal format of integer (default one).  Module may not work as expected if integer format is changed to Hex as it doesn’t set and restore integer format for practical reasons (it would have to be repeated on far too many places).  If you set different integer format restore it back to default one once you are finished.


Form module presents alternative way of creating AHK windows.
Useful stdlib functions.
Control container.
Encapsulation of the system Toolbar API.
Rebar control act as container for child windows.
HyperLink control.
Splitter control.
Scroll Bar control.
Makes window scrollable.
HiEdit is a multitabbed, ultra fast, large file edit control consuming very little memory.
Ultra small Win32 HTML control.
SpreadSheet control is extremelly fast and small Excell like control, developed in Assembler.
Properties viewer and editor.
Advanced grid custom control.
Set of window functions.
Common Operating System Dialogs
Dock AHK windows.
MenuName = "",
Sub = "",
Sep = "`n",
r = 0)
Show menu from the text string.
Type = "",
Dim = "",
HGlueCtrl = "")
Aligns controls inside the parent.
Attach(hCtrl = "",
aDef = "")
Determines how a control is resized with its parent.
Set cursor shape for control or window.
Add tooltips to GUI controls.
MenuName = "",
Sub = "")
Sets context menu for the control.
Background = "",
Foreground = "")
Set text and background color for some Gui controls.
Cx = 16,
Cy = 16,
Align = "Left",
Margin = "1 1 1 1")
Creates an ImageList and associates it with a button.
Dlg_Font(ByRef Name,  
ByRef Style,  
ByRef Color,  
 Effects = true,
 hGui = 0)