Just starting out? Need help? Post your questions and find answers here.
AZJIO
Addict
Posts: 1372 Joined: Sun May 14, 2017 1:48 am
Post
by AZJIO » Fri Nov 26, 2021 8:58 pm
There is a working
example
Not working, need help
First attempt
Code: Select all
EnableExplicit
Structure Metr
Size.i
i1.i
i2.i
i3.i
i4.i
i5.i
s1.b[60]
i6.i
i7.i
s2.b[60]
i8.i
i9.i
s3.b[60]
s4.b[60]
s5.b[60]
EndStructure
Structure ItemFont
l1.l
l2.l
l3.l
l4.l
l5.l
s1.b
s2.b
s3.b
s4.b
s5.b
s6.b
s7.b
s8.b
char.c[32]
EndStructure
Global Metr.Metr
Metr\Size = SizeOf(Metr)
#SPI_GETNONCLIENTMETRICS = 41
SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, Metr\Size, Metr, 0)
Debug GetLastError_()
Global ItemFont1.ItemFont
CopyStructure(@Metr\s1, @ItemFont1, ItemFont)
Debug ItemFont1\char
Debug ItemFont1\l1
Debug ItemFont1\l5
Second attempt
Code: Select all
EnableExplicit
Structure ItemFont
l1.l
l2.l
l3.l
l4.l
l5.l
s1.b
s2.b
s3.b
s4.b
s5.b
s6.b
s7.b
s8.b
char.c[32]
EndStructure
Structure Metr
Size.l
l1.l
l2.l
l3.l
l4.l
l5.l
s1.ItemFont
l6.l
l7.l
s2.ItemFont
l8.l
l9.l
s3.ItemFont
s4.ItemFont
s5.ItemFont
EndStructure
Global Metr.Metr
Metr\Size = SizeOf(Metr)
#SPI_GETNONCLIENTMETRICS = 41
SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, Metr\Size, Metr, 0)
Debug GetLastError_()
Debug "———————"
Debug "CaptionFont"
Debug PeekS(@Metr\s1\char, 32, #PB_Unicode)
Debug Metr\s1\l1
Debug Metr\s1\l5
Debug "———————"
Debug "IconFont"
Debug PeekS(@Metr\s2\char, 32, #PB_Unicode)
Debug Metr\s2\l1
Debug Metr\s2\l5
Debug "———————"
Debug "MenuFont"
Debug PeekS(@Metr\s3\char, 32, #PB_Unicode)
Debug Metr\s3\l1
Debug Metr\s3\l5
Debug "———————"
Debug "MessageFont"
Debug PeekS(@Metr\s4\char, 32, #PB_Unicode)
Debug Metr\s4\l1
Debug Metr\s4\l5
Debug "———————"
Debug "SmCaptionFont"
Debug PeekS(@Metr\s5\char, 32, #PB_Unicode)
Debug Metr\s5\l1
Debug Metr\s5\l5
User_Russian
Addict
Posts: 1443 Joined: Wed Nov 12, 2008 5:01 pm
Location: Russia
Post
by User_Russian » Fri Nov 26, 2021 9:42 pm
Code: Select all
EnableExplicit
Global Metr.NONCLIENTMETRICS
Metr\cbSize = SizeOf(Metr)
SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, Metr\cbSize, Metr, 0)
Debug Metr\iCaptionHeight
Debug Metr\iMenuWidth
Debug PeekS(@Metr\lfMenuFont\lfFaceName[0])
Debug PeekS(@Metr\lfMessageFont\lfFaceName[0])
AZJIO
Addict
Posts: 1372 Joined: Sun May 14, 2017 1:48 am
Post
by AZJIO » Fri Nov 26, 2021 11:07 pm
Thanks.
"IconFont" is missing. HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics. There are 6 elements, and there are 5 elements in the structure.
There is a program that changes the font size. I would like to repeat it. It would be possible to change this data in the registry. The first byte changes.
Code: Select all
1 = f3
2 = f2
3 = f1
4 = f0 (font size 16)
5 = ef (font size 17)
6 = ee
7 = ed
5 elements
Code: Select all
EnableExplicit
Global Metrics.NONCLIENTMETRICS
Metrics\cbSize = SizeOf(Metrics)
SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, Metrics\cbSize, Metrics, 0)
Debug "———————"
Debug "Title CaptionFont"
Debug PeekS(@Metrics\lfCaptionFont\lfFaceName[0])
Debug Metrics\lfCaptionFont\lfHeight
Debug Metrics\lfCaptionFont\lfWeight
Debug "———————"
Debug "Title Palette SMCaptionFont"
Debug PeekS(@Metrics\lfSMCaptionFont\lfFaceName[0])
Debug Metrics\lfSMCaptionFont\lfHeight
Debug Metrics\lfSMCaptionFont\lfWeight
Debug "———————"
Debug "Menu MenuFont"
Debug PeekS(@Metrics\lfMenuFont\lfFaceName[0])
Debug Metrics\lfMenuFont\lfHeight
Debug Metrics\lfMenuFont\lfWeight
Debug "———————"
Debug "ToolBar StatusFont"
Debug PeekS(@Metrics\lfStatusFont\lfFaceName[0])
Debug Metrics\lfStatusFont\lfHeight
Debug Metrics\lfStatusFont\lfWeight
Debug "———————"
Debug "MessageBox MessageFont"
Debug PeekS(@Metrics\lfMessageFont\lfFaceName[0])
Debug Metrics\lfMessageFont\lfHeight
Debug Metrics\lfMessageFont\lfWeight