Ignore the arrow in the image below.
My goal is to display a HUD display window over MSFS 2020 with pertinent flight information data like a Real-life airplane does.

Code: Select all
Enumeration
#WIN
#RALT
#TORQUE
#IAS
#FONT
EndEnumeration
Procedure ShowWin()
If OpenWindow(#WIN, 0, 0, 400, 200, "Transparent Window",#PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
SetWindowColor(#WIN,#Blue)
SetWindowLong_(WindowID(#WIN), #GWL_EXSTYLE, #WS_EX_LAYERED | #WS_EX_TOPMOST)
SetLayeredWindowAttributes_(WindowID(#WIN),#Blue,0,#LWA_COLORKEY)
If LoadFont(#Font, "Segoe UI", 11)
SetGadgetFont(#PB_Default, FontID(#Font))
EndIf
TextGadget(#RALT, 10, 10,100, 20, "RALT: 2,050")
TextGadget(#TORQUE, 10,100,100, 20, "THQ%: 95%")
TextGadget(#IAS, 290, 10,100, 20, "IAS%: 95kt",#PB_Text_Right)
SetGadgetColor(#RALT, #PB_Gadget_FrontColor,$14DE1F)
SetGadgetColor(#TORQUE,#PB_Gadget_FrontColor,$14DE1F)
SetGadgetColor(#IAS, #PB_Gadget_FrontColor,$14DE1F)
EndIf
EndProcedure
ShowWin()
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
Code: Select all
Enumeration
#WIN
#RALT
#TORQUE
#IAS
#FONT
EndEnumeration
Procedure ShowWin()
If OpenWindow(#WIN, 0, 0, 400, 200, "Transparent Window",#PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
SetWindowColor(#WIN,#Blue)
SetWindowLong_(WindowID(#WIN), #GWL_EXSTYLE, #WS_EX_LAYERED | #WS_EX_TOPMOST)
SetLayeredWindowAttributes_(WindowID(#WIN),#Blue,0,#LWA_COLORKEY)
If LoadFont(#Font, "Segoe UI", 11)
SetGadgetFont(#PB_Default, FontID(#Font))
EndIf
TextGadget(#RALT, 10, 10,100, 20, "RALT: 2,050")
TextGadget(#TORQUE, 10,100,100, 20, "THQ%: 95%")
TextGadget(#IAS, 300, 10,100, 20, "IAS%: 95kt")
SetGadgetColor(#RALT, #PB_Gadget_FrontColor,$14DE1F)
SetGadgetColor(#RALT, #PB_Gadget_BackColor,#Blue)
SetGadgetColor(#TORQUE,#PB_Gadget_FrontColor,$14DE1F)
SetGadgetColor(#TORQUE, #PB_Gadget_BackColor,#Blue)
SetGadgetColor(#IAS, #PB_Gadget_FrontColor,$14DE1F)
SetGadgetColor(#IAS, #PB_Gadget_BackColor,#Blue)
EndIf
EndProcedure
SystemParametersInfo_(#SPI_SETFONTSMOOTHING,0,0,0) ; turns off font smoothing
ShowWin()
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
Code: Select all
Enumeration
#WIN
#RALT
#TORQUE
#IAS
#FONT
EndEnumeration
Procedure ShowWin()
If OpenWindow(#WIN, 0, 0, 400, 200, "Transparent Window",#PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
SetWindowColor(#WIN,$f0f0f0)
SetWindowLong_(WindowID(#WIN), #GWL_EXSTYLE, #WS_EX_LAYERED | #WS_EX_TOPMOST)
SetLayeredWindowAttributes_(WindowID(#WIN),$f0f0f0,0,#LWA_COLORKEY)
If LoadFont(#Font, "Segoe UI", 12,#PB_Font_HighQuality)
SetGadgetFont(#PB_Default, FontID(#Font))
EndIf
TextGadget(#RALT, 10, 10,100, 20, "RALT: 2,050")
TextGadget(#TORQUE, 10,100,100, 20, "THQ%: 95%")
TextGadget(#IAS, 290, 10,100, 20, "IAS%: 95kt",#PB_Text_Right)
SetGadgetColor(#RALT, #PB_Gadget_FrontColor,$00ff00)
SetGadgetColor(#RALT, #PB_Gadget_BackColor,$f0f0f0)
SetGadgetColor(#TORQUE,#PB_Gadget_FrontColor,$00ff00)
SetGadgetColor(#TORQUE, #PB_Gadget_BackColor,$f0f0f0)
SetGadgetColor(#IAS, #PB_Gadget_FrontColor,$00ff00)
SetGadgetColor(#IAS, #PB_Gadget_BackColor,$f0f0f0)
EndIf
EndProcedure
ShowWin()
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
Code: Select all
Enumeration
#WIN
#RALT
#TORQUE
#IAS
#FONT
#EXIT
EndEnumeration
Procedure ShowWin()
SystemParametersInfo_(#SPI_SETFONTSMOOTHING,0,0,0) ; turns off font smoothing
If OpenWindow(#WIN, 0, 0, 1000, 450, "Daher TBM-930", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
SetWindowPos_(WindowID(#WIN), #HWND_TOPMOST, 0, 0, 0, 0,#SWP_NOACTIVATE | #SWP_NOMOVE | #SWP_NOSIZE)
SetWindowLong_(WindowID(#WIN), #GWL_EXSTYLE, GetWindowLong_(WindowID(#WIN), #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW)
SetWindowColor(#WIN,#Blue)
SetWindowLong_(WindowID(#WIN), #GWL_EXSTYLE, #WS_EX_LAYERED | #WS_EX_TOPMOST)
SetLayeredWindowAttributes_(WindowID(#WIN),#Blue,0,#LWA_COLORKEY)
If LoadFont(#Font, "Segoe UI Bold", 11)
SetGadgetFont(#PB_Default, FontID(#Font))
EndIf
ButtonGadget(#EXIT, WindowWidth(#WIN) - 20,0,20,20,"X")
TextGadget(#RALT, 10, 25,100, 20, "RALT: 25 ft")
TextGadget(#IAS, (WindowWidth(#WIN) / 2) - 50, 25,100, 20, "IAS%: 0kt")
TextGadget(#TORQUE, WindowWidth(#WIN) - 100, 25,100, 20, "THQ%: 5%")
SetGadgetColor(#RALT, #PB_Gadget_FrontColor,$1D8D23)
SetGadgetColor(#RALT, #PB_Gadget_BackColor,#Blue)
SetGadgetColor(#TORQUE, #PB_Gadget_FrontColor,$1D8D23)
SetGadgetColor(#TORQUE, #PB_Gadget_BackColor,#Blue)
SetGadgetColor(#IAS, #PB_Gadget_FrontColor,$1D8D23)
SetGadgetColor(#IAS, #PB_Gadget_BackColor,#Blue)
EndIf
EndProcedure
ShowWin()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Quit = #True
Case #PB_Event_Gadget
Select EventGadget()
Case #EXIT
Quit = #True
EndSelect
EndSelect
Until Quit = #True
Very true, Saki. But, on my 4K monitor, as you can see, the font is really not that bad. The font displayed is really no worse than a real-life HUD displays'.Saki wrote: Sat Apr 17, 2021 3:23 pm The disadvantage here, however, is again the loss of the edge smoothing of the fonts.
I just saw your reply, Rashad.
Code: Select all
Enumeration
#WIN
#RALT
#TORQUE
#IAS
#FONT
EndEnumeration
Procedure ShowWin()
If OpenWindow(#WIN, 0, 0, 400, 200, "Transparent Window",#PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
SetWindowColor(#WIN,$00ef00)
SetWindowLong_(WindowID(#WIN), #GWL_EXSTYLE, #WS_EX_LAYERED | #WS_EX_TOPMOST)
SetLayeredWindowAttributes_(WindowID(#WIN),$00ef00,0,#LWA_COLORKEY)
If LoadFont(#Font, "Segoe UI", 12,#PB_Font_HighQuality)
SetGadgetFont(#PB_Default, FontID(#Font))
EndIf
TextGadget(#RALT, 10, 10,100, 20, "RALT: 2,050")
TextGadget(#TORQUE, 10,100,100, 20, "THQ%: 95%")
TextGadget(#IAS, 290, 10,100, 20, "IAS%: 95kt",#PB_Text_Right)
SetGadgetColor(#RALT, #PB_Gadget_FrontColor,$00ff00)
SetGadgetColor(#RALT, #PB_Gadget_BackColor,$00ef00)
SetGadgetColor(#TORQUE,#PB_Gadget_FrontColor,$00ff00)
SetGadgetColor(#TORQUE, #PB_Gadget_BackColor,$00ef00)
SetGadgetColor(#IAS, #PB_Gadget_FrontColor,$00ff00)
SetGadgetColor(#IAS, #PB_Gadget_BackColor,$00ef00)
EndIf
EndProcedure
ShowWin()
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1