- Local time
- 12:51 PM
- Posts
- 147
- OS
- Windows 11 25H2 Pro Build 26200
This is from memory and what I can check from an Android tablet. My win 11 system is about 800km away. It's qn explanation of why thus isn't straightforward.
The documented way to do this is using the SystemParametersInfoA function
using SPI_SETICONTITLELOGFONT and SPI_SETNONCLIENTMETRICS options
In practice you would use the corresponding GET functions to create the appropriate data structures and only change the font size. Note that the font is actually sized in pixels. The registry entries for each font are LOGFONT structures. the first 4 bytes are long integer and negative.
So on the default setting of 9 point at 100% scaling (96dpi) pixel size should be -12. This does not seem to be properly dpi aware. I think that the registry entries are literal. It's easy to check this. the default value would then be -18 at 150% (144 dpi).
SystemParametersInfoA has an option to only change the settings until you logout. I assume winaero.com tweaker tries to make it permanent.
As to what value you should use with SystemParametersInfoA to set to 12 point if your windows scaling is not 100%, but 150%, I would check. It might be -18, or it might be -24.
If you use the maligned slider to change all font sizes simultaneously and step carefully through each value you should see that there are particular percentages when a lot of activity takes place, and others where much less happens. The obvious activity occurs when the size increases enough to get to the next (point or pixel) size. Although if you have a more modern application open (Firefox in my case) you can see tiny changes for every percent increase. I cannot remember where this value is eventually set in the registry, and I haven't discovered how to set it immediately.
One possibility is that windows will reset the scaling if the SystemParametersInfoA and the other setting aren't consistent.
Since I started writing this reports have been made that there isn't a problem if you don't use winaero tweaker.
The documented way to do this is using the SystemParametersInfoA function
SystemParametersInfoA function (winuser.h) - Win32 apps
Retrieves or sets the value of one of the system-wide parameters. (ANSI)
learn.microsoft.com
using SPI_SETICONTITLELOGFONT and SPI_SETNONCLIENTMETRICS options
In practice you would use the corresponding GET functions to create the appropriate data structures and only change the font size. Note that the font is actually sized in pixels. The registry entries for each font are LOGFONT structures. the first 4 bytes are long integer and negative.
So on the default setting of 9 point at 100% scaling (96dpi) pixel size should be -12. This does not seem to be properly dpi aware. I think that the registry entries are literal. It's easy to check this. the default value would then be -18 at 150% (144 dpi).
SystemParametersInfoA has an option to only change the settings until you logout. I assume winaero.com tweaker tries to make it permanent.
As to what value you should use with SystemParametersInfoA to set to 12 point if your windows scaling is not 100%, but 150%, I would check. It might be -18, or it might be -24.
If you use the maligned slider to change all font sizes simultaneously and step carefully through each value you should see that there are particular percentages when a lot of activity takes place, and others where much less happens. The obvious activity occurs when the size increases enough to get to the next (point or pixel) size. Although if you have a more modern application open (Firefox in my case) you can see tiny changes for every percent increase. I cannot remember where this value is eventually set in the registry, and I haven't discovered how to set it immediately.
One possibility is that windows will reset the scaling if the SystemParametersInfoA and the other setting aren't consistent.
Since I started writing this reports have been made that there isn't a problem if you don't use winaero tweaker.
My Computers
System One System Two
-
- OS
- Windows 11 25H2 Pro Build 26200
- Computer type
- PC/Desktop
- Manufacturer/Model
- MSI PRO ADL-U Cubi 5 (MS-B0A8)
- CPU
- i3-1215U
- Memory
- 8GB
- Monitor(s) Displays
- Sony 43" 4k TV
- Screen Resolution
- 3840x2160
- Hard Drives
- 250GB NVMe M.2 PCIe Gen 3 SSD
- PSU
- External 65W
- Case
- Mini PC
- Browser
- FireFox
- Antivirus
- MS
-
- Operating System
- Windows 11 Pro 25H2
- Computer type
- PC/Desktop
- Manufacturer/Model
- Dell Optiplex 3070 SFF
- CPU
- Intel i3-9100
- Memory
- 16GB DDR4
- Monitor(s) Displays
- Dell S2721
- Screen Resolution
- 3840 x 2160
- Hard Drives
- Samsung 500GB nvMe
- Case
- Dell small form factor
- Keyboard
- Cherry mechanical (Blue)
- Mouse
- Microsoft
- Antivirus
- MS Defender






