Opened 2 years ago
Last modified 21 months ago
#3968 assigned Bug
global struct gets corrupted after GUISetState() — at Initial Version
| Reported by: | argumentum | Owned by: | |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | 3.3.16.1 | Severity: | None |
| Keywords: | Struct | Cc: |
Description
#include <WinAPISys.au3> ; for $tagLOGFONT ;
Global $___gt__HiDpi_WinFont, $sFont
_SystemParametersInfo_GetSystemFont()
$hGUI = GUICreate('Test', 400, 400)
GUISetState(@SW_SHOW, $hGUI) ; try the code with this and without it
ConsoleWrite("Font : Attributes: " & $___gt__HiDpi_WinFont.Attributes & @CRLF)
ConsoleWrite("Font : Weight: " & DllStructGetData($___gt__HiDpi_WinFont, 'Weight') & @CRLF)
ConsoleWrite("Font : Quality: " & DllStructGetData($___gt__HiDpi_WinFont, 'Quality') & @CRLF)
ConsoleWrite("Font : FaceName: " & DllStructGetData($___gt__HiDpi_WinFont, 'FaceName') & @CRLF)
ConsoleWrite("Font : FaceName: " & $sFont & @CRLF) ; this never changes
Func _SystemParametersInfo_GetSystemFont()
Local $dMenuFont = Binary(RegRead('HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics', 'MenuFont'))
ConsoleWrite($dMenuFont & @CRLF)
Local $tLOGFONT = DllStructCreate('byte[' & BinaryLen($dMenuFont) & ']')
DllStructSetData($tLOGFONT, 1, $dMenuFont)
$___gt__HiDpi_WinFont = DllStructCreate($tagLOGFONT, DllStructGetPtr($tLOGFONT))
$sFont = DllStructGetData($___gt__HiDpi_WinFont, 'FaceName')
EndFunc
While troubleshooting we discovered a bug.
The thread is at https://www.autoitscript.com/forum/topic/210637-systemparametersinfo-getsystemfont-i-made-an-ugly-bug/?do=findComment&comment=1522165
Note: See
TracTickets for help on using
tickets.
