Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post your working scripts, libraries and tools for AHK v1.1 and older
ozzii
Posts: 481
Joined: 30 Oct 2013, 06:04

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by ozzii » 19 Nov 2019, 02:43

Really nice.
One question @TheDewd
Can you share the code that you use for making the comments (like the line 1 and 125 of your code for example) if you don't do it manually.

User avatar
TheDewd
Posts: 1503
Joined: 19 Dec 2013, 11:16
Location: USA

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by TheDewd » 19 Nov 2019, 09:37

ozzii wrote:
19 Nov 2019, 02:43
Can you share the code that you use for making the comments (like the line 1 and 125 of your code for example) if you don't do it manually.
@ozzii,

I have the following code added to the "New AutoHotkey Script.ahk" template file. This is the code used when I use "Right-click > New > New AutoHotkey Script".

I manually add additional comments as needed.

Script presentation and readability is very important to me. I always try to ensure use of proper indentation, capitalization, formatting, etc.

Code: Select all

; Script Information ===========================================================
; Name:        New AutoHotkey Script
; Description: New Script Description
; AHK Version: 1.1.31.01 (Unicode 32-bit)
; OS Version:  Windows 2000+
; Language:    English (United States)
; Author:      FirstName LastName <[email protected]>
; Filename:    New AutoHotkey Script.ahk
; ==============================================================================

; Revision History =============================================================
; Revision 1 (YYYY-MM-DD)
; * Initial release
; ==============================================================================

; Auto-Execute =================================================================
#SingleInstance, Force ; Allow only one running instance of script
#Persistent ; Keep the script permanently running until terminated
#NoEnv ; Avoid checking empty variables for environment variables
#Warn ; Enable warnings to assist with detecting common errors
;#NoTrayIcon ; Disable the tray icon of the script
;#KeyHistory, 0 ; Keystroke and mouse click history
;ListLines, Off ; The script lines most recently executed
SetWorkingDir, % A_ScriptDir ; Set the working directory of the script
SetBatchLines, -1 ; The speed at which the lines of the script are executed
SendMode, Input ; The method for sending keystrokes and mouse clicks
;DetectHiddenWindows, On ; The visibility of hidden windows by the script
;SetWinDelay, 0 ; The delay to occur after modifying a window
;SetControlDelay, 0 ; The delay to occur after modifying a control
OnExit("OnUnload") ; Run a subroutine or function when exiting the script

return ; End automatic execution
; ==============================================================================

; Labels =======================================================================
; TBD
; ==============================================================================

; Functions ====================================================================
OnLoad() {
	Global ; Assume-global mode
	Static Init := OnLoad() ; Call function

	Menu, Tray, Tip, New AutoHotkey Script
	;Menu, Tray, NoStandard
	;Menu, Tray, Add, E&xit, MenuHandler
}

OnUnload(ExitReason, ExitCode) {
	Global ; Assume-global mode
}

GuiCreate() {
	Global ; Assume-global mode
	Static Init := GuiCreate() ; Call function

	Gui, +LastFound -Resize +HWNDhGui
	Gui, Margin, 10, 10
	Gui, Add, Text, w400 h200, Sample Text
	Gui, Show, AutoSize, Example
}

GuiSize(GuiHwnd, EventInfo, Width, Height) {
	If (ErrorLevel = 1) { ; Window minimized
		return
	}
}

GuiClose(GuiHwnd) {
	ExitApp ; Terminate the script unconditionally
}

GuiEscape(GuiHwnd) {
	ExitApp ; Terminate the script unconditionally
}

MenuHandler(ItemName, ItemPos, MenuName) {
	MenuInfo := "Item Name: " ItemName "`nItem Position: " ItemPos "`nMenu Name: " MenuName
	MsgBox, 0x40, MenuHandler, % MenuInfo

	;If (MenuName = "Tray") {
	;	If (ItemName = "E&xit") {
	;		ExitApp ; Terminate the script unconditionally
	;	}
	;}
}
; ==============================================================================

ozzii
Posts: 481
Joined: 30 Oct 2013, 06:04

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by ozzii » 20 Nov 2019, 08:10

Thank you.
I thought that you maybe have a hotkey for this.
But a template file is also okay.

Thank you again

burque505
Posts: 1731
Joined: 22 Jan 2017, 19:37

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by burque505 » 20 Nov 2019, 09:42

@TheDewd, thanks from me too for this template.
Regards,
burque505

User avatar
SpeedMaster
Posts: 494
Joined: 12 Nov 2016, 16:09

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by SpeedMaster » 02 Jul 2020, 17:16

Grid-based interface with some b64 images but no sound. :lolno:

Code: Select all


OnMessage(0x201, "WM_LBUTTONDOWN")
gosub, decode

gui, add, pic, y10 , % bg

opt:="gclick backgroundtrans" 
r:=c:=0, rows:=4, cols:=2
While r++ < rows {
     while c++ < cols{
          gui 1: add, pic, % opt "  v" c "_" r  
                . (c=1&&r=1    ? " x60 y170 section"
                :  c=1&&r>1 ? " xs yp+60 "
				: " xp+300 yp"), % BTOFF
       } c:=0
} r:=0, c:=0

gui, font, s18 bold

txt:=[	"Chopin"	, "Beethoven"
,		"Debussy"	, "Chubert"
,		"Satie"		, "Bach"
,		"Mozart"	, "Tchaikovsky" ]

r:=c:=i:=0, rows:=4, cols:=2
opt:=" 0x201 left cgray -border backgroundtrans h40 w170"
While r++ < rows {
     while c++ < cols { 
	 i++
          gui 1: add, text, % opt "  v" "t_" c "_" r  
                . (c=1&&r=1 ? " x180 y170 section"
                :  c=1&&r>1 ? " xs yp+60 "
				: " xp+300 yp"), % txt[i]
       } c:=0
} r:=0, c:=0
gui, add, text, w0 h0 y+30


B64Decode( B64, nBytes:="", W:="", H:="" ) {
Local Bin, BLen, hICON:=0  
if !nBytes
nBytes := ceil(strlen(strReplace( B64,"=","=",e))/4*3)-e
 
  VarSetCapacity( Bin,nBytes,0 ), BLen := StrLen(B64)
  If DllCall( "Crypt32.dll\CryptStringToBinary", "Str",B64, "UInt",BLen, "UInt",0x1
            , "Ptr",&Bin, "UIntP",nBytes, "Int",0, "Int",0 )
     hICON := DllCall( "CreateIconFromResourceEx", "Ptr",&Bin, "UInt",nBytes, "Int",True
                     , "UInt","0x30000", "Int",W, "Int",H, "UInt",0, "UPtr" )            
Return hICON
}

WM_LBUTTONDOWN() {
MouseGetPos, xpos, ypos 
	(A_Gui) && (xpos<60 || ypos<170) && move()
	(A_Gui) && (xpos>635 && ypos<20) && exit()
}
move() { 
	PostMessage, 0xA1, 2 ; WM_NCLBUTTONDOWN
}
exit() {
	exitapp	
}

gui, Margin, 0, 0
gui, +resize -caption
gui, color, 2D2B39
gui, show
return

click:
out:=a_guicontrol
%out%:= !%out% ? 1 : 0
GuiControl, , %a_guicontrol%, % %out% ? BTON : BTOFF
GuiControl,  % (%out%) ? "+clime" : "+cgray", % "t_" a_guicontrol
GuiControl, movedraw, % "t_" a_guicontrol, 0
return

guiclose: 
esc::exitapp 
return


Decode:
bg :="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"
bg .="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"
bg .="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"
bg .="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"
bg .="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"
BTOFF :="HICON:*" b64Decode("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")
BTON :="HICON:*" b64Decode("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")
bg:="HICON:*" b64Decode(bg)
return

if you want to hear the music look at the post below by rommmcek.
viewtopic.php?f=6&t=3851&start=300#p340270
@rommmcek great work it's even better with sounds. :dance: :salute:
Attachments
example.png
example.png (113.67 KiB) Viewed 12034 times
Last edited by SpeedMaster on 31 Aug 2021, 16:30, edited 1 time in total.

burque505
Posts: 1731
Joined: 22 Jan 2017, 19:37

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by burque505 » 02 Jul 2020, 17:49

@SpeedMaster, that's really slick. I really like the way you handle moving the GUI and exiting, by the way. I'm betting @Hellbent will like this also.

Code: Select all

WM_LBUTTONDOWN() {
MouseGetPos, xpos, ypos 
	(A_Gui) && (xpos<60 || ypos<170) && move()
	(A_Gui) && (xpos>635 && ypos<20) && exit()
}
move() { 
	PostMessage, 0xA1, 2 ; WM_NCLBUTTONDOWN
}
exit() {
	exitapp	
}
Regards,
burque505

User avatar
joedf
Posts: 8937
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by joedf » 02 Jul 2020, 18:11

Fancy 3d effect :+1:
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]

User avatar
Delta Pythagorean
Posts: 626
Joined: 13 Feb 2017, 13:44
Location: Somewhere in the US
Contact:

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by Delta Pythagorean » 02 Jul 2020, 20:16

I made a quick file explorer to help me with finding, executing, and managing my files without doing much of anything. As of right now it's a prototype and needs to be cleaned up a bit.
I'll send the source code as well as a full, compiled download ready for use later this month (kinda lazy at the moment).

Here's a screenshot:
QuickExplorer_Example.png
Basic example of the Quick Explorer dialog.
QuickExplorer_Example.png (6.56 KiB) Viewed 11264 times

Some explanation and other info:
  • The top blue bar is the window caption (color for it and other actions for the theme are dependant on settings.ini). All I did was use the CtlColors class to color a text box. Same with the X.
  • The greyed out items are files that are hidden in the explorer normally. There's a setting that you can change to hide or show "hidden" files in settings.ini (comes with the download (soon...)).
  • There is a menu when you right click on one of the items that allows you to run the file/folder with another program or what have you; as well as other actions such as copying the file's path, name, and the contents (working on that). And much more.
  • The UI shows where your mouse currently is, this however can be changed to show at a specific location, or the center of the screen.
  • There are sounds that play when you open a folder, go up a level (clicking on \..), or running a file. This is done not by using SoundPlay but by using winmm.dll\sndPlaySound to make "faster" by allowing the sounds to run asynchronized to the script and continue without delay.

[AHK]......: v2.0.6 | 64-bit
[OS].......: Windows 11 | 22H2 (OS Build: 22621.1555)
[GITHUB]...: github.com/DelPyth
[PAYPAL]...: paypal.me/DelPyth
[DISCORD]..: tophatcat


You should consider migrating to v2. Practice with small features first such as learning how to do Guis!
Remember to use [code] ... [/code] for your multi-line scripts for the forums.

User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by Hellbent » 02 Jul 2020, 20:58

burque505 wrote:
02 Jul 2020, 17:49
I'm betting @Hellbent will like this also.
I always like a non-default gui :thumbup:

Nice work @SpeedMaster

User avatar
rommmcek
Posts: 1470
Joined: 15 Aug 2014, 15:18

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by rommmcek » 07 Jul 2020, 01:00

Awesome Gui worth to have music!
[Edit 2]: Each composer has a piece.
[Edit 4]: Fixed Ahk U32 Issue. It works now on Ahk U32 and U64.
P.s.: File attached cause it's too big to fit in the code box.
Attachments
SpeedMaster's b64 Gui + m64u Music 0.7.ahk
(1.38 MiB) Downloaded 603 times

robmar-zl
Posts: 24
Joined: 05 Feb 2015, 04:57

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by robmar-zl » 14 Apr 2021, 04:38

Today something different:

PREVIEW :mrgreen:
WORK IN PROGRESS :monkeysay:


New Desktop Launcher

This is the Button-Bar on the bottom of the screen with hover animation (button gets bigger)
On Right-Click a sub-menu opens. In this example 3 subreddits.
11.jpg
11.jpg (30.69 KiB) Viewed 8736 times
--------------------------------------------------------------------------------------------------------------------

By hitting CAPS a search bar opens. Default is google search.
Some Quicklinks are already implemented like idealo in this example.
You can also search other sites by using a prefix
- y for youtube
- t for twitter
- i for idealo
- m for mydealz
- r for reddit
22.jpg
22.jpg (26.43 KiB) Viewed 8736 times
--------------------------------------------------------------------------------------------------------------------

an another nice feature is the weathr forecast. You can get any forecast with prefix "w" and the city name
33.jpg
33.jpg (80.3 KiB) Viewed 8736 times
--------------------------------------------------------------------------------------------------------------------

And of course some other functionality like time, date and weather on-desktop display

User avatar
cyruz
Posts: 345
Joined: 30 Sep 2013, 13:31

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by cyruz » 17 May 2021, 11:56

Let me borrow some of your knowledge :mrgreen:

What would you do to turn this into a non standard GUI?

Image

Code: Select all

#SingleInstance force

oFunc := Func("testfunc")
aMenu := [ { "File" : { "Test1" : oFunc
                      , "Test2" : oFunc } }
         , { "Edit" : { "Test1" : oFunc
                      , "Test2" : oFunc } }
         , { "View" : { "Test1" : oFunc
                      , "Test2" : oFunc } }
         , { "Help" : { "Help"  : oFunc 
                      , "About" : oFunc } } ]

Loop % aMenu.Length()
{
    For men1,val1 in aMenu[A_Index]
    {
        For men2,val2 in val1
            Menu, %men1%, Add, %men2%, %val2%
        Menu, MenuBar, Add, %men1%, :%men1%
    }
}

Gui, 1Main:Default
Gui, 1Main:Margin, 5, 5
Gui, 1Main:Menu, MenuBar 
Gui, 1Main:Add, TreeView, x5 y5 w200 h600
Gui, 1Main:Add, GroupBox, x+5 y5 w500 h200 Section, Selection Data:
Gui, 1Main:Add, Text, xs+10 ys+20 w60, Text One:
Gui, 1Main:Add, Text, x+10, Some data
Gui, 1Main:Add, Text, xs+10 y+10 w60, Text Two:
Gui, 1Main:Add, Text, x+10, Some data
Gui, 1Main:Add, Text, xs+10 y+10 w60, Text Three:
Gui, 1Main:Add, Text, x+10, Some data
Gui, 1Main:Add, Tab3, x210 y210 w500 h395, Tab1|Tab2|Tab3
Gui, 1Main:Add, ListView, x+5 w485 h360, Column1|Column2|Column3|Column4|Column5
Gui, 1Main:Add, StatusBar,, Status bar text

P1 := TV_Add("One")
P2 := TV_Add("Two")
P3 := TV_Add("Three")
P1C1 := TV_Add("One A", P1)
P1C2 := TV_Add("One B", P1)
P2C1 := TV_Add("Two A", P2)
P2C2 := TV_Add("Two B", P2)
P3C1 := TV_Add("Three A", P3)
P3C1C1 := TV_Add("Three AA", P3C1)

Gui, 1Main:Show, Autosize


testfunc()
{
    msgbox, lol
}
ABCza on the old forum.
My GitHub.

User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by Hellbent » 27 Nov 2021, 18:05

Resizable Layered window template. ( +E0x80000 / +E0x080000 )


Temp (1).gif
Temp (1).gif (332.82 KiB) Viewed 7522 times

burque505
Posts: 1731
Joined: 22 Jan 2017, 19:37

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by burque505 » 27 Nov 2021, 19:03

Very nice, @Hellbent!
Regards,
burque505

User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by Hellbent » 27 Nov 2021, 19:10

Thanks @burque505.
Hope you're doing well.

iPhilip
Posts: 791
Joined: 02 Oct 2013, 12:21

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by iPhilip » 28 Nov 2021, 17:15

Hellbent wrote:
27 Nov 2021, 18:05
Resizable Layered window template. ( +E0x80000 / +E0x080000 )
Interesting! I would appreciate it if you would share the code you used to generate that. Thank you.
Windows 10 Pro (64 bit) - AutoHotkey v2.0+ (Unicode 64-bit)

User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by Hellbent » 28 Nov 2021, 19:21

iPhilip wrote:
28 Nov 2021, 17:15
Hellbent wrote:
27 Nov 2021, 18:05
Resizable Layered window template. ( +E0x80000 / +E0x080000 )
Interesting! I would appreciate it if you would share the code you used to generate that. Thank you.
It isn't ready for release yet but enough of it is done to convey the basics.

***This requires the GDIP.AHK LIB and Windows 8 or higher ( uses embedded controls and child windows )

When you use this, you basically use a grandchild window as your main window.

The parent has the design for the background and window frame and is redrawn as the window is resized using this.

Code: Select all

	_DrawGraphics(){
		Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , "0x01000000" , "0x66000000" , 1 , 1 ) , Gdip_FillRoundedRectangle( This.G , Brush , 13 , 1 , This.W - 15 , This.H - 4 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 6 , 6 , This.W - 12 , This.H - 12 , "0xff808080" , "0xFF474747" , 1 , 1 ) , Gdip_FillRoundedRectangle( This.G , Brush , 6 , 6 , This.W - 12 , This.H - 12 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 6 , 6 , This.W - 12 , This.H - 12 , "0xFF171717" , "0xFF000000" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRoundedRectangle( This.G , Pen , 6 , 6 , This.W - 12 , This.H - 12 , 5 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( "0xff252525" ) , Gdip_FillRoundedRectangle( This.G , Brush , 8 , 8 , This.W - 16 , This.H - 16 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xff2E2E2E" ) , Gdip_FillRoundedRectangle( This.G , Brush , 8 , 28 , This.W - 16 , This.H - 36 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF2E2E2E" ) , Gdip_FillRectangle( This.G , Brush , 8 , 28 , This.W - 16 , This.H - 142 ) , Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF383838" , 1 ) , Gdip_DrawLine( This.G , Pen , 9 , 28 , This.W - 9 , 28 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_CreateLineBrushFromRect( 5 , 10 , This.W - 12 , This.H - 22 , "0x66171717" , "0x66000000" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRoundedRectangle( This.G , Pen , 8 , 8 , This.W - 16 , This.H - 16 , 5 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( "0xFFB6B6B6" ) , Gdip_FillEllipse( This.G , Brush , 11 , 10 , 15 , 15 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF323232" ) , Gdip_TextToGraphics( This.G , "r" , "s11 Center vCenter Bold c" Brush " x11 y12" , "Webdings" , 15 , 15 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFB3B3B3" ) , Gdip_TextToGraphics( This.G , This.Text , "s12 Center vCenter Bold c" Brush " x0 y8" , "Verdana" , This.W , 25 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFacacac" ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawLine( This.G , Pen , This.W - 24 , This.H - 12 , This.W - 12 , This.H - 24 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( "0xFFacacac" ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawLine( This.G , Pen , This.W - 20 , This.H - 12 , This.W - 12 , This.H - 20 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( "0xFFacacac" ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawLine( This.G , Pen , This.W - 16 , This.H - 12 , This.W - 12 , This.H - 16 ) , Gdip_DeletePen( Pen )
	}

inside that window is another window that acts as the housing for your window. This window is resized but not redrawn as the window is resized.


Last is your window which sits inside a window inside another window.

I don't have the child window added in to the class yet so I had to just rig things up bit.

This here ( found in the auto-execute section at the top)

Code: Select all

Gui2 := New PopUpWindow( { X: 20 , Y: 30 , W: Gui1.W - 40 , H: Gui1.H - 50 , Options: " -DPIScale +AlwaysOnTop +Parent" Gui1.Hwnd } )
Gui2.ShowWindow()
Gui2.PaintBackground( color := "0xFF000000" , 1 )  ;{ Color: "0xFF000000" , X: 2 , Y: 2 , W: Gui2.W - 4 , H: Gui2.H - 4 , Round: 10 }


;and this 

ResizeIt:
	Gui2.UpdateSettings( { W: Gui1.W - 40 , H: Gui1.H - 50 } , UpdateGraphics := 0 )
	Gui2.ShowWindow()
	return

would be part of the windows class.

And this

Code: Select all

Gui3 := New PopUpWindow( { X: 0 , Y: 0 , W: 700 , H: 400 , Options: " -DPIScale +AlwaysOnTop +Parent" Gui2.Hwnd } )
Gui3.ShowWindow()

Gui3.PaintBackground( { Color: "0xFF22262a" , X: 2 , Y: 2 , W: Gui3.W - 4 , H: Gui3.H - 4 , Round: 10 } , 1 )  ;{ Color: "0xFF000000" , X: 2 , Y: 2 , W: Gui3.W - 4 , H: Gui3.H - 4 , Round: 10 }
Gui3.DrawBitmap( HB_BITMAP_MAKER() , { X: 100 , Y: 100 , W: 300 , H: 220 } , 1 , 1 )
Is more or less how you use the main window (your window).

I made the inner window a different color in this gif so that it is easier to see how it works. (the parent of your window)
Temp (1).gif
Temp (1).gif (691.85 KiB) Viewed 7204 times
This here is the class that I am using for my main window ( the window with my controls on it etc.)
I am also using it for the inner window in this case since it hasn't been added to the class yet.

PopUpWindow Class (v2) ( general purpose Layered Window class)

Code: Select all

;####################################################################################################################################################################################
;####################################################################################################################################################################################
;####################################################################################################################################################################################
;####################################################################################################################################################################################
class PopUpWindow	{
;PopUpWindow v2
;Date Written: Oct 28th, 2021
;Written By: Hellbent aka CivReborn
;SpcThanks: teadrinker , malcev 
	static Index := 0 , Windows := [] , Handles := [] , EditHwnd , HelperHwnd
	__New( obj := "" ){
		This._SetDefaults()
		This.UpdateSettings( obj )
		This._CreateWindow()
		This._CreateWindowGraphics()
		if( This.AutoShow )
			This.ShowWindow( This.Title )
	}
	_SetDefaults(){
		This.X := 10
		This.Y := 10
		This.W := 10
		This.H := 10
		This.Smoothing := 2
		This.Options := " -DPIScale +AlwaysOnTop "
		This.AutoShow := 0
		This.GdipStartUp := 0
		This.Title := ""
		
		This.Controls := []
		This.Handles := []
		This.Index := 0 
	}
	AddTrigger( obj ){
		local k , v , cc , bd
		
		This.Controls[ ++This.Index ] := { 	X:		10
										,	Y:		10
										,	W:		10
										,	H:		10	}
		for k, v in obj
			This.Controls[ This.Index ][ k ] := obj[ k ] 
		cc := This.Controls[ This.Index ]
		Gui, % This.Hwnd ":Add", Text, % "x" cc.X " y" cc.Y " w" cc.W " h" cc.H " hwndhwnd"
		This.Handles[ hwnd ] := This.Index
		This.Controls[ This.Index ].Hwnd := hwnd
		return hwnd
		
	}
	DrawTriggers( color := "0xFFFF0000" , AutoUpdate := 0 ){
		local brush , cc 
		Brush := Gdip_BrushCreateSolid( color ) 
		Gdip_SetSmoothingMode( This.G , 3 )
		loop, % This.Controls.Length()	{
			cc := This.Controls[ A_Index ]
			Gdip_FillRectangle( This.G , Brush , cc.x , cc.y , cc.w , cc.h )
		
		}
		Gdip_DeleteBrush( Brush )
		Gdip_SetSmoothingMode( This.G , This.Smoothing )
		if( AutoUpdate )
			This.UpdateWindow()
	}
	UpdateSettings( obj := "" , UpdateGraphics := 0 ){
		local k , v
		if( IsObject( obj ) )
			for k, v in obj
				This[ k ] := obj[ k ]
		( This.X = "Center" ) ? ( This.X := ( A_ScreenWidth - This.W ) / 2 ) 	
		( This.Y = "Center" ) ? ( This.Y := ( A_ScreenHeight - This.H ) / 2 ) 	
		if( UpdateGraphics ){
			This._DestroyWindowsGraphics()
			This._CreateWindowGraphics()
		}
	}
	_CreateWindow(){
		local hwnd
		Gui , New, % " +LastFound +E0x80000 hwndhwnd -Caption  " This.Options
		PopUpWindow.Index++
		This.Index := PopUpWindow.Index
		PopUpWindow.Windows[ PopUpWindow.Index ] := This
		This.Hwnd := hwnd
		PopUpWindow.Handles[ hwnd ] := PopUpWindow.Index
		if( This.GdipStartUp && !PopUpWindow.pToken )
			PopUpWindow.pToken := GDIP_STARTUP()
	}
	_DestroyWindowsGraphics(){
		SelectObject( This.hdc , This.obm )
		DeleteObject( This.hbm )
		DeleteDC( This.hdc )
	}
	_CreateWindowGraphics(){
		This.hbm := CreateDIBSection( This.W , This.H )
		This.hdc := CreateCompatibleDC()
		This.obm := SelectObject( This.hdc , This.hbm )
		This.G := Gdip_GraphicsFromHDC( This.hdc )
		Gdip_SetSmoothingMode( This.G , This.Smoothing )
	}
	ShowWindow( Title := "" ){
		Gui , % This.Hwnd ":Show", % "x" This.X " y" This.Y " w" This.W " h" This.H " NA", % Title
	}
	HideWindow(){
		Gui , % This.Hwnd ":Hide",
	}
	UpdateWindow(){
		UpdateLayeredWindow( This.hwnd , This.hdc , This.X , This.Y , This.W , This.H )
	}
	ClearWindow( AutoUpdate := 0 ){
		Gdip_GraphicsClear( This.G )
		if( Autoupdate )
			This.UpdateWindow()
	}
	DrawBitmap( pBitmap , obj , dispose := 1 , AutoUpdate := 0 ){
		Gdip_DrawImage( This.G , pBitmap , obj.X , obj.Y , obj.W , obj.H )
		if( dispose )
			Gdip_DisposeImage( pBitmap )
		if( Autoupdate )
			This.UpdateWindow()
	}
	PaintBackground( color := "0xFF000000" , AutoUpdate := 0 ){
		if( isObject( color ) ){
			Brush := Gdip_BrushCreateSolid( ( color.HasKey( "Color" ) ) ? ( color.Color ) : ( "0xFF000000" ) ) 
			if( color.Haskey( "Round" ) )
				Gdip_FillRoundedRectangle( This.G , Brush , color.X , color.Y , color.W , color.H , color.Round )
			else
				Gdip_FillRectangle( This.G , Brush , color.X , color.Y , color.W , color.H ) 
		}else{
			Brush := Gdip_BrushCreateSolid( color ) 
			Gdip_FillRectangle( This.G , Brush , -1 , -1 , This.W + 2 , This.H + 2 ) 
		}
		Gdip_DeleteBrush( Brush )
		if( AutoUpdate )
			This.UpdateWindow()
	}
	DeleteWindow( GDIPShutdown := 0 ){
		Gui, % This.Hwnd ":Destroy"
		SelectObject( This.hdc , This.obm )
		DeleteObject( This.hbm )
		DeleteDC( This.hdc )
		Gdip_DeleteGraphics( This.G )
		hwnd := This.Hwnd
		for k, v in PopUpWindow.Windows[ Hwnd ]
			This[k] := ""
		PopUpWindow.Windows[ Hwnd ] := ""
		if( GDIPShutdown ){
			Gdip_Shutdown( PopUpWindow.pToken )
			PopUpWindow.pToken := ""
		}
	}
	_OnClose( wParam ){
		if( wParam = 0xF060 ){	;SC_CLOSE ;[ clicking on the gui close button ]
			Try{
				Gui, % PopUpWindow.HelperHwnd ":Destroy"
				SoundBeep, 555
			}
		}
	}
	CreateCachedBitmap( pBitmap , Dispose := 0 ){
		local pCachedBitmap
		if( This.CachedBitmap )
			This.DisposeCachedbitmap()
		DllCall( "gdiplus\GdipCreateCachedBitmap" , "Ptr" , pBitmap , "Ptr" , this.G , "PtrP" , pCachedBitmap )
		This.CachedBitmap := pCachedBitmap
		if( Dispose )
			Gdip_DisposeImage( pBitmap )
	}
	DrawCachedBitmap( AutoUpdate := 0 ){
		DllCall( "gdiplus\GdipDrawCachedBitmap" , "Ptr" , this.G , "Ptr" , This.CachedBitmap , "Int" , 0 , "Int" , 0 )
		if( AutoUpdate )
			This.UpdateWindow()
	}
	DisposeCachedbitmap(){
		DllCall( "gdiplus\GdipDeleteCachedBitmap" , "Ptr" , This.CachedBitmap )
	}
	Helper(){
		local hwnd , MethodList := ["__New","UpdateSettings","ShowWindow","HideWindow","UpdateWindow","ClearWindow","DrawBitmap","PaintBackground","DeleteWindow" , "AddTrigger" , "DrawTriggers", "CreateCachedBitmap" , "DrawCachedBitmap" , "DisposeCachedbitmap" ]
		Gui, New, +AlwaysOnTop +ToolWindow +HwndHwnd
		PopUpWindow.HelperHwnd := hwnd
		Gui, Add, Edit, xm ym w250 r1 Center hwndhwnd, Gui1
		PopUpWindow.EditHwnd := hwnd
		loop, % MethodList.Length()	
			Gui, Add, Button, xm y+1 w250 r1 gPopUpWindow._HelperClip, % MethodList[ A_Index ]
		Gui, Show,,
		OnMessage( 0x112 , This._OnClose.Bind( hwnd ) )
	}
	_HelperClip(){
		local ClipList 
		
		GuiControlGet, out, % PopUpWindow.HelperHwnd ":", % PopUpWindow.EditHwnd	
		
		ClipList := 		{ 	__New: 					" := New PopUpWindow( { X: 0 , Y: 0 , W: A_ScreenWidth , H: A_ScreenHeight , Options: "" -DPIScale +AlwaysOnTop "" } )"
							,	UpdateSettings:			".UpdateSettings( { X: """" , Y: """" , W: """" , H: """" } , UpdateGraphics := 0 )"
							,	ShowWindow:				".ShowWindow( Title := """" )"
							,	HideWindow:				".HideWindow()"
							,	UpdateWindow:			".UpdateWindow()"
							,	ClearWindow:			".ClearWindow( AutoUpdate := 0 )"
							,	DrawBitmap:				".DrawBitmap( pBitmap := """" , { X: 0 , Y: 0 , W: " Out ".W , H: " Out ".H } , dispose := 1 )"
							,	PaintBackground:		".PaintBackground( color := ""0xFF000000"" )  "  ";{ Color: ""0xFF000000"" , X: 2 , Y: 2 , W: " Out ".W - 4 , H: " Out ".H - 4 , Round: 10 }"
							,	DeleteWindow:			".DeleteWindow( GDIPShutdown := 0 )"
							,	AddTrigger:				".AddTrigger( { X: """" , Y: """" , W: """" , H: """" , Value: """" , Label: """" , BoundClass: """" , BoundMethod: """" } )"	
							,	DrawTriggers:			".DrawTriggers( color := ""0xFFFF0000"" , AutoUpdate := 0 )"	
							,	CreateCachedBitmap:		".CreateCachedBitmap( pBitmap , Dispose := 0 )"	
							,	DrawCachedBitmap: 		".DrawCachedBitmap( AutoUpdate := 0 )"	
							,	DisposeCachedbitmap:	".DisposeCachedbitmap()"	}
							
		clipboard := Out ClipList[ A_GuiControl ]
		
	}
}
This is the window template class. As I said before, it is missing the part that adds and controls the inner window. See the sample code for an example of it.


Window Template Class (aka #Include <Dark Layered Window Class>)

Code: Select all

;**************************************************************************************************************************************************************************************************
;**************************************************************************************************************************************************************************************************
class DarkWindow1	{
	;Written By: Hellbent
	;Date: June 10th, 2021
	static Index := 0 , Handles := [] , Windows := [] , pToken , FT , Methods := ["_CreateGUI","_AddControls","_RepositionControls","_CreateBitmap","_DrawGraphics","_UpdateWindow","ShowWindow"]
	__New( obj := "" ){
		if( !DarkWindow1.pToken )
			DarkWindow1.pToken := GDIP_StartUp()
		DarkWindow1.Index++
		This._SetDefaults()
		This.UpdateDefaults( obj ) 
		Loop, % DarkWindow1.Methods.Length()
			This[ DarkWindow1.Methods[ A_Index ] ]() 
		This._MoveWindow()
		DarkWindow1.Handles[ This.Hwnd ] := DarkWindow1.Index
		DarkWindow1.Windows[ DarkWindow1.Index ] := This
	}
	_SetDefaults(){
		This.X := "Center"
		This.Y := "Center"
		This.W := 185
		This.H := 192
		This.MinWidth := 185
		This.MinHeight := 192
		This.WindowOptions := " +AlwaysOnTop -DPIScale "
		This.MainColor := ""
		This.TitleBarColor := ""
		This.TextColor := 
		This.Text := "Window"
		This.Handles := []
		This.Controls := []
		This.Controls[1] := { Name: "CloseButton" , X: 11 , Y: 10 , W: 15 , H: 15 , Hwnd: "" , Method: "_CloseWindow" }
		This.Controls[2] := { Name: "TitleBar" , X: 26 , Y: 0 , W: This.W - 36 , H: 27 , Hwnd: "" , Method: "_MoveWindow" }
		This.Controls[3] := { Name: "ReSize" , X: This.W - 24 , Y: This.H - 24 , W: 15 , H: 15 , Hwnd: "" , Method: "_ResizeWindow" }
		This.Hwnd := ""
		This.hbm := ""
		This.hdc := ""
		This.obm := ""
		This.G := ""
		This.WindowSmoothing := 2
	}
	UpdateDefaults( obj := "" ){
		for k, v in obj
			This[ k ] := v
		( This.X = "Center" ) ? ( This.X := ( A_ScreenWidth - This.W ) / 2 )
		( This.Y = "Center" ) ? ( This.Y := ( A_ScreenHeight - This.H ) / 2 )
		if( !DarkWindow1.FT && DarkWindow1.FT := 1 )
			return
		This._DeleteBitmap()
		This._CreateBitmap()
	}
	_DeleteBitmap(){
		SelectObject( This.hdc , This.obm )
		DeleteObject( This.hbm )
		DeleteDC( This.hdc )
	}
	_CreateBitmap(){
		This.hbm := CreateDIBSection( This.W , This.H )
		This.hdc := CreateCompatibleDC()
		This.obm := SelectObject( This.hdc , This.hbm )
		This.G := Gdip_GraphicsFromHDC( This.hdc )
		Gdip_SetSmoothingMode( This.G , This.WindowSmoothing )	
	}
	_AddControls(){
		local hwnd , bd 
		Loop, % This.Controls.Length()	{
			Gui, % This.Hwnd ":Add" , Text, % "x" This.Controls[ A_Index ].X " y" This.Controls[ A_Index ].Y " w" This.Controls[ A_Index ].W " h" This.Controls[ A_Index ].H " hwndhwnd"
			This.Handles[ hwnd ] := A_Index
			This.Controls[ A_Index ].Hwnd := hwnd
			bd := This[ This.Controls[ A_Index ].Method ].Bind( This )
			GuiControl, % This.Hwnd ":+G" , % hwnd , % bd
		}
	}
	_CreateGUI(){
		local hwnd
		Gui, New, % " +E0x80000 hwndhwnd -Caption  " This.WindowOptions
		This.Hwnd := hwnd
		
	}
	_CloseWindow(){
		This.DeleteWindow()
	}
	_MoveWindow(){
		PostMessage, 0xA1, 2
		While(GetKeyState("LButton"))
			sleep, 30
		WinGetPos, x, y,,, % "ahk_id " This.Hwnd
		This.UpdateDefaults( { X: x , Y: y } )
		;~ if(y < 1){
			;~ ToolTip, here
			;~ This.UpdateDefaults( { X: -12 , Y: -12 ,W: A_ScreenWidth + 24 , H: A_ScreenHeight - 70 } )
			;~ This.ClearWindow()
			;~ This._DrawGraphics()
			;~ This._UpdateWindow()
			;~ This._RepositionControls()
		;~ }
	}
	_ResizeWindow(){
		static lx
		local x , y
		CoordMode, Mouse, Screen
		While(GetKeyState( "LButton" ) ){
			MouseGetPos, x , y
			if( lx != x ){
				lx := x
				This._GCycle( x , y )
				gosub, ResizeIt
			}
			sleep, 30
		}
		This._RepositionControls()
		gosub, ResizeIt
	}
	_RepositionControls(){
		GuiControl, % This.Hwnd ":Move" , % This.Controls[ 2 ].Hwnd , % "w" This.W - 26 - 10
		GuiControl, % This.Hwnd ":Move" , % This.Controls[ 3 ].Hwnd , % "x" This.W - 24 " y" This.H - 24
	}
	_GCycle( x , y ){
		This.W := x - This.X + 5
		This.H := y - This.Y + 5
		if( This.W < This.MinWidth )
			This.W := This.MinWidth
		if( This.H < This.MinHeight )
			This.H := This.MinHeight
		This.UpdateDefaults()
		This.ClearWindow()
		This._DrawGraphics()
		This._UpdateWindow()
	}
	ClearWindow(){
		Gdip_GraphicsClear( This.G )
	}
	ShowWindow(){
		Gui, % This.Hwnd ":Show", % "x" This.X " y" This.Y " w" This.W " h" This.H
	}
	_UpdateWindow(){
		UpdateLayeredWindow( This.hwnd , This.hdc , This.X , This.Y , This.W , This.H )
	}
	_DrawGraphics(){
		Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , "0x01000000" , "0x66000000" , 1 , 1 ) , Gdip_FillRoundedRectangle( This.G , Brush , 13 , 1 , This.W - 15 , This.H - 4 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 6 , 6 , This.W - 12 , This.H - 12 , "0xff808080" , "0xFF474747" , 1 , 1 ) , Gdip_FillRoundedRectangle( This.G , Brush , 6 , 6 , This.W - 12 , This.H - 12 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 6 , 6 , This.W - 12 , This.H - 12 , "0xFF171717" , "0xFF000000" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRoundedRectangle( This.G , Pen , 6 , 6 , This.W - 12 , This.H - 12 , 5 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( "0xff252525" ) , Gdip_FillRoundedRectangle( This.G , Brush , 8 , 8 , This.W - 16 , This.H - 16 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xff2E2E2E" ) , Gdip_FillRoundedRectangle( This.G , Brush , 8 , 28 , This.W - 16 , This.H - 36 , 5 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF2E2E2E" ) , Gdip_FillRectangle( This.G , Brush , 8 , 28 , This.W - 16 , This.H - 142 ) , Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF383838" , 1 ) , Gdip_DrawLine( This.G , Pen , 9 , 28 , This.W - 9 , 28 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_CreateLineBrushFromRect( 5 , 10 , This.W - 12 , This.H - 22 , "0x66171717" , "0x66000000" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRoundedRectangle( This.G , Pen , 8 , 8 , This.W - 16 , This.H - 16 , 5 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( "0xFFB6B6B6" ) , Gdip_FillEllipse( This.G , Brush , 11 , 10 , 15 , 15 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF323232" ) , Gdip_TextToGraphics( This.G , "r" , "s11 Center vCenter Bold c" Brush " x11 y12" , "Webdings" , 15 , 15 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFB3B3B3" ) , Gdip_TextToGraphics( This.G , This.Text , "s12 Center vCenter Bold c" Brush " x0 y8" , "Verdana" , This.W , 25 ) , Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFacacac" ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawLine( This.G , Pen , This.W - 24 , This.H - 12 , This.W - 12 , This.H - 24 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( "0xFFacacac" ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawLine( This.G , Pen , This.W - 20 , This.H - 12 , This.W - 12 , This.H - 20 ) , Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( "0xFFacacac" ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawLine( This.G , Pen , This.W - 16 , This.H - 12 , This.W - 12 , This.H - 16 ) , Gdip_DeletePen( Pen )
	}
	DeleteWindow(){
		Gui, % This.Hwnd ":Destroy"
		SelectObject( This.hdc , This.obm )
		DeleteObject( This.hbm )
		DeleteDC( This.hdc )
		Gdip_DeleteGraphics( This.G )
		;~ GDIP_ShutDown( DarkWindow1.pToken )
		hwnd := This.Hwnd
		for k, v in DarkWindow1.Windows[ Hwnd ]
			This[k] := ""
		DarkWindow1.Windows[ Hwnd ] := ""
	}
}


And here is a little demo. (most of the code is for a simple graphics example inside the window [ HB_BITMAP_MAKER() ] ).

Demo

Code: Select all

;***************************************************************************************************
#Include <My Altered Gdip Lib>   ;Replace with your path to the Gdip.ahk lib
#Include <PopUpWindow_V2>
#Include <Dark Layered Window Class>
;***************************************************************************************************
#SingleInstance force
SetBatchLines, -1

Gui1 := New DarkWindow1( { X: 800 , Y: 100 , W: 300 , H: 300 , Text: "Demo Window 1" , MinWidth: 250 , MinHeight: 50 }  )

Gui2 := New PopUpWindow( { X: 20 , Y: 30 , W: Gui1.W - 40 , H: Gui1.H - 50 , Options: " -DPIScale +AlwaysOnTop +Parent" Gui1.Hwnd } )
Gui2.ShowWindow()
Gui2.PaintBackground( color := "0xFF00ff00" , 1 ) 


Gui3 := New PopUpWindow( { X: 0 , Y: 0 , W: 700 , H: 400 , Options: " -DPIScale +AlwaysOnTop +Parent" Gui2.Hwnd } )
Gui3.ShowWindow()

Gui3.PaintBackground( { Color: "0xFF22262a" , X: 2 , Y: 2 , W: Gui3.W - 4 , H: Gui3.H - 4 , Round: 10 } , 1 )  ;{ Color: "0xFF000000" , X: 2 , Y: 2 , W: Gui3.W - 4 , H: Gui3.H - 4 , Round: 10 }
Gui3.DrawBitmap( HB_BITMAP_MAKER() , { X: 100 , Y: 100 , W: 300 , H: 220 } , 1 , 1 )
return

GuiClose:
GuiContextMenu:
*ESC::ExitApp

Numpad3::PopUpWindow.Helper()

Numpad1::New DarkWindow1( { X: 800 , Y: 100 , W: 500 , H: h := 360 , Text: "Put The Windows Title Here" , MinWidth: 280 , MinHeight: 50 }  )


ResizeIt:
	Gui2.UpdateSettings( { W: Gui1.W - 40 , H: Gui1.H - 50 } , UpdateGraphics := 0 )
	Gui2.ShowWindow()
	return
	
	
HB_BITMAP_MAKER(){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap := Gdip_CreateBitmap( 300 , 220 ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , 2 )
	Brush := Gdip_BrushCreateSolid( "0xFF1D1D1D" ) , Gdip_FillRectangle( G , Brush , -1 , -1 , 302 , 222 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 10 , 15 , 280 , 198 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF1D1D1D" ) , Gdip_FillRectangle( G , Brush , 15 , 5 , 138 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 15 , 8 , 96 , 17 , "0xFF00aaaa" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Button Colors" , "s12  Bold c" Brush " x42 y8" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 15 , 5 , 138 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Outer Border:" , "s12 c" Brush " x16 y38" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 102 , 35 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 35 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 142 , 35 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 35 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 34 , 49 , 24 , "0xFF2d2d2d" , "0xFF0d0d0d" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 34 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 35 , 51 , 49 , "0xFF006666" , "0xFF121212" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 34 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 15 , 8 , 96 , 17 , "0xFF00aaaa" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y38" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Center Border:" , "s12 c" Brush " x16 y68" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 102 , 65 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 65 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 142 , 65 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 65 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 63 , 47 , 25 , "0xFF2d2d2d" , "0xFF0d0d0d" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 64 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 61 , 51 , 49 , "0xFF006666" , "0xFF121212" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 64 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 66 , 49 , 20 , "0xFF00aaaa" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y68" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Inner Border 1:" , "s12 c" Brush " x16 y98" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 102 , 95 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 95 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 142 , 95 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 95 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 94 , 47 , 24 , "0xFF2d2d2d" , "0xFF0d0d0d" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 94 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 94 , 50 , 40 , "0xFF006666" , "0xFF121212" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 94 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 94 , 47 , 24 , "0xFF00aaaa" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y98" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Inner Border 2:" , "s12 c" Brush " x16 y128" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 102 , 125 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 125 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 142 , 125 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 125 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 124 , 47 , 23 , "0xFF2d2d2d" , "0xFF0d0d0d" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 124 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 124 , 47 , 43 , "0xFF006666" , "0xFF121212" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 124 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 238 , 128 , 48 , 21 , "0xFF00aaaa" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y128" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Main 1:" , "s12 c" Brush " x16 y158" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 102 , 155 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 155 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 142 , 155 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 155 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 154 , 50 , 21 , "0xFF2d2d2d" , "0xFF0d0d0d" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 154 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 153 , 52 , 42 , "0xFF006666" , "0xFF121212" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 154 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 154 , 48 , 23 , "0xFF00aaaa" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y158" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF006666" ) , Gdip_TextToGraphics( G , "Main 2:" , "s12 c" Brush " x16 y188" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 102 , 185 , 30 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 102 , 185 , 30 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF121212" ) , Gdip_FillRectangle( G , Brush , 142 , 185 , 90 , 22 ) , Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF004444" , 1 ) , Gdip_DrawRectangle( G , Pen , 142 , 185 , 90 , 22 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 184 , 48 , 24 , "0xFF2d2d2d" , "0xFF0d0d0d" , 1 , 1 ) , Gdip_FillRectangle( G , Brush , 237 , 184 , 48 , 24 ) , Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrushFromRect( 236 , 182 , 51 , 51 , "0xFF006666" , "0xFF121212" , 1 , 1 ) , Pen := Gdip_CreatePenFromBrush( Brush , 1 ) , Gdip_DeleteBrush( Brush ) , Gdip_DrawRectangle( G , Pen , 237 , 184 , 48 , 24 ) , Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrushFromRect( 237 , 154 , 48 , 23 , "0xFF00aaaa" , "0xFF006666" , 1 , 1 ) , Gdip_TextToGraphics( G , "Get" , "s12  Bold c" Brush " x249 y188" , "Segoe ui" , 122 , 22 ) , Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	return pBitmap
}







Let me know if you have questions.

User avatar
joedf
Posts: 8937
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by joedf » 28 Nov 2021, 23:07

@Hellbent Very nice! :+1:
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]

User avatar
Hellbent
Posts: 2102
Joined: 23 Sep 2017, 13:34

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by Hellbent » 28 Nov 2021, 23:45

Thanks @joedf

lblb
Posts: 190
Joined: 30 Sep 2013, 11:31

Re: Examples of Non-Standard GUIs (ActiveX, GDI, etc.)

Post by lblb » 29 Nov 2021, 00:38

@Hellbent

It's been an absolute joy to see you go through all the gdip stuff in these last few years. Your progress and work have been simply amazing. You have been able to use gdip to create stuff that, only a few years ago, AutoHokey users could only wish for.

I'm a user of more traditional GUI's who is looking to up my game into gdip stuff. Do you have any recommendations as to what good starting points could be to learn more about using gdip with AHK?

Post Reply

Return to “Scripts and Functions (v1)”