0xC0FFEE Posted July 28, 2025 Posted July 28, 2025 (edited) User Interface Builder Overview Use this tool to visually design Windows applications with a focus on Metro windows, standard windows, and Tool windows. This is for users who want a faster and simpler development tool. Drag-and-drop GUI creation, code generation, and easy control alignment tools. No more clicking through property sheets to set variable names, sizes, and the control’s text. Please replace "MetroUDF-Required\SSCtrlHover.au3" within the metro UDF files to see more meaningful messages in the console. The following line was inserted into the function. This prevents crashing on syntax and logical errors while Metro buttons are in use. Func _cHvr_Register($idCtrl, $fnHovOff = '', $fnHoverOn = '', $fnClick = '', $fnDblClk = '', $HoverData = 0,$ClickData = 0,$fnRightClick = '') If $BLOCK_HOVER_REGISTRATION Then Return Unfortunately, the following will have to added to your scripts if you already use Metro UDF and you replace "SSCtrlHover.au3". Global $BLOCK_HOVER_REGISTRATION = False #include "MetroGUI_UDF.au3" #include "MetroGUI_UDF_xpk.au3" #include "_GUIDisable.au3" ; For dim effects when msgbox is displayed Features Metro Controls for all window types WYSIWYG real-time preview Generates AutoIt GUI and message loop code Multiple control selection and manipulation Make additional selections with the CTRL key Accelerated control movements with the SHIFT key Change controls position with mouse or arrow keys Double click a control to precisely set its size and text Save/load GUI layouts and Control layouts to files Custom styles/themes and Controls using Metro Snap-to-guide, and toolbar alignment aids Drag down guides from the top and left sides of the Designer window Copy-n-paste between different window types Technical Details .Gui/.Ctrls file is a simple delimited text file Copy-n-paste is a similar file without the window specifications The application is meant to be portable, so it is one file The only Custom UDFs in use is Metro 5.1, and my Metro Expansion pack The script uses Label controls for everything. No GDI was used. Every control handle is saved in an array Maps are used in Metro and in future UDFs containing new controls You need Metro 5.1 UDF Limitations and known issues Resizing the Metro window with the mouse is flaky Changing control and window styles is not implemented Window size cannot be changed precisely Undo functionality might cause problems with code generation No Redo implemented Thank you BB19 and everyone that contributed to Metro UDF. MetroGUI_UDF_xpk.au3 SSCtrlHover.au3 UserInterfaceBuilder.au3 Edited August 3, 2025 by 0xC0FFEE mLipok, ioa747 and pat4005 3
argumentum Posted July 28, 2025 Posted July 28, 2025 Wow !. A whole lot of work !. Return Run(@ComSpec & " /C AutoIt3.exe """ & @ScriptFullPath & """ " & $StringCall ,"C:\Program Files (x86)\AutoIt3",@SW_HIDE) I don't run AutoIt from that path. Maybe that's the reason the script ends with "AutoIt3 ended. rc:-1073740771" ? Nice 1st post Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
0xC0FFEE Posted July 28, 2025 Author Posted July 28, 2025 (edited) Thanks for taking a look at my app! Return Run(@ComSpec & " /C AutoIt3.exe """ & @ScriptFullPath & """ " & $StringCall ,"C:\Program Files (x86)\AutoIt3",@SW_HIDE) The code above is only used to execute this function: Start('"TransformFontDialog"') The actual syntax and logical errors do not display on the console because a subclass (_WinAPI_SetWindowSubclass) is registered. Every Metro button made calls "_cHvr_Register" at the end of creation. We can prevent this but all applications will need this Global Variable added before the #include. Global $BLOCK_HOVER_REGISTRATION = True #include "MetroGUI_UDF.au3" #include "MetroGUI_UDF_xpk.au3" #include "_GUIDisable.au3" ; For dim effects when msgbox is displayed In addition, "MetroUDF-Required\SSCtrlHover.au3", function "_cHvr_Register", needs the line inserted: Func _cHvr_Register($idCtrl, $fnHovOff = '', $fnHoverOn = '', $fnClick = '', $fnDblClk = '', $HoverData = 0,$ClickData = 0,$fnRightClick = '') If $BLOCK_HOVER_REGISTRATION Then Return In your app, $BLOCK_HOVER_REGISTRATION must be set False so that the buttons will animate. Global $BLOCK_HOVER_REGISTRATION = False The edits talked about above are in the attached files. Please let me know if this helps. Now, if you "Throw Error", the true error message should display in the console. UserInterfaceBuilder.au3 SSCtrlHover.au3 Edited July 28, 2025 by 0xC0FFEE
argumentum Posted July 29, 2025 Posted July 29, 2025 3 hours ago, 0xC0FFEE said: The code above is only Func Start($StringCall) ; argumentum ;~ If @AutoItExe = @ScriptFullPath Then this is an EXE Return ShellExecute(@AutoItExe, (@AutoItExe = @ScriptFullPath ? '' : ' "' & @ScriptFullPath & '" ') & $StringCall) ; this should work, I guess EndFunc Func Start($StringCall) ; 0xC0FFEE ;~ Run(@ComSpec & " /C AutoIt3.exe """ & @ScriptFullPath & """ ""Notify"" ""Hello World.""","C:\Program Files (x86)\AutoIt3") Return Run(@ComSpec & " /C AutoIt3.exe """ & @ScriptFullPath & """ " & $StringCall ,StringLeft(@AutoItExe, StringInStr(@AutoItExe, "\", 0, -1) -1),@SW_HIDE) EndFunc the above 2 options should work better because AutoIt can be installed other than default. 3 hours ago, 0xC0FFEE said: Now, if you "Throw Error", the true error message should display in the console Regardless, I still get that "rc:-1073740771" crash ? PS: I'd love to dig deeper into the code and troubleshoot it but am too busy 😭 0xC0FFEE 1 Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
0xC0FFEE Posted August 3, 2025 Author Posted August 3, 2025 Added a theme picker for Metro windows. I changed $BLOCK_HOVER_REGISTRATION back to False so it would draw the controls with the correct colors. Please change it back to True if you are having trouble starting the application. Global $BLOCK_HOVER_REGISTRATION = False #include "MetroGUI_UDF.au3" #include "MetroGUI_UDF_xpk.au3" #include "_GUIDisable.au3" ; For dim effects when msgbox is displayed argumentum 1
jaberwacky Posted October 18, 2025 Posted October 18, 2025 Hello! I'm getting this error: (493,26) : error: _WinAPI_GetCapture() already defined. Func _WinAPI_GetCapture() Helpful Posts and Websites: AutoIt Wiki | Can't find what you're looking for on the Forum? My scripts: Guiscape | Baroque AU3 Code Formatter | MouseHoverCalltips | SciTe Customization GUI | ActiveWindowTrack Toy | Monitor Configuration UDF
pat4005 Posted October 19, 2025 Posted October 19, 2025 0xC0FFEE, this is awesome and super useful! I'm so fed up by manual gui control positioning and this great project is the solution. Keep it up, I am excited to see more. Will you accept any improvements or advices? It's been so long I am using MetroGUI_UDF, that I've also did something to extend its functionality. For example, _Metro_CreateInput and _Metro_CreateComboBox. I could provide some code to help in development of a couple useful control elements. metro.mp4 WildByDesign 1
mLipok Posted October 20, 2025 Posted October 20, 2025 (edited) On 10/18/2025 at 4:07 AM, jaberwacky said: Hello! I'm getting this error: (493,26) : error: _WinAPI_GetCapture() already defined. Func _WinAPI_GetCapture() Me too and also Quote --------------------------- User Interface Builder --------------------------- Call failed: Function "/ErrorStdOut" does not exist. Edited October 20, 2025 by mLipok Signature beginning:* Please remember: "AutoIt"..... * Wondering who uses AutoIt and what it can be used for ? * Forum Rules ** ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24
TheSaint Posted October 29, 2025 Posted October 29, 2025 Thanks for sharing your project, looks impressive. I've added it to the sticky topic - AutoIt GUI Creators (Designers) Make sure brain is in gear before opening mouth! Remember, what is not said, can be just as important as what is said. Spoiler What is the Secret Key? Life is like a Donut If I put effort into communication, I expect you to read properly & fully, or just not comment. Ignoring those who try to divert conversation with irrelevancies. If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it. I'm only big and bad, to those who have an over-active imagination. I may have the Artistic Liesense to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)
musicstashall Posted November 1, 2025 Posted November 1, 2025 I don't quite understand this syntax. What's it? This is where the error occurs Local Static $Setting[] I haven't seen arrays declared this way.
musicstashall Posted November 1, 2025 Posted November 1, 2025 (edited) Important note on the project MetroGUI UDF v5.1 Edited November 1, 2025 by musicstashall
ahmet Posted November 1, 2025 Posted November 1, 2025 Local Static $var[] is Map. It is available in beta version. I do not know if it is available in the latest stable release.
musicstashall Posted November 1, 2025 Posted November 1, 2025 (edited) 1 hour ago, ahmet said: It is available in beta version Do you mean the AutoIt version? Edited November 1, 2025 by musicstashall
argumentum Posted November 1, 2025 Posted November 1, 2025 5 hours ago, ahmet said: It is available in beta version. I do not know if it is available in the latest stable release. 3 hours ago, musicstashall said: Do you mean the AutoIt version? Ok. Good news, there is no beta newer than release at the moment. Update your environment. Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now