'C++ Builder 11 - TCheckBox Scales When Form Scaled is False - Work around?

I submitted a bug (RSP-30892) to Embarcadero over 1.5 years ago (since Rad Studio 10.4) regarding the following issue:

TCheckBox is scaling when it shouldn't when Windows 10 is set to 150% scaling. The form property is set to Scaled=false, the checkbox still scales 150%. Other controls conform to the form property.

While I have patiently waited for a fix on their end, it has yet to occur. I have tried to override the PixelsPerInch property of the control, but it is ignored.

The big question: Has anyone had any success with a work around, or, a way to override this behavior?

In case it is needed, here is how to reproduce:

  1. Create VCL C++ Forms project.
  2. Set form's "Scaled" property to false.
  3. Add a TCheckBox to the form.
  4. Apply a style to the application in the project options (like Windows 10 Dark).
  5. Under project options->Packages, turn off dynamic RTL in linker. Turn off runtime packages.
  6. Under project options->Application, Manifest, check Enable Runtime Themes and set DPI awareness to Per Monitor v2.
  7. Run on a Windows with scaling set to 150%.


Solution 1:[1]

There is another bug report according to which this works as designed: https://quality.embarcadero.com/browse/RSP-24216

Scaled only affects the font size, not the boxes. To fully prevent scaling you must set DPI awareness to "None" in Options -> Application -> Manifest.

You have set the DPI awareness to "Per Monitor v2", which will not work.

When I set DPI awareness to "None", the entire form is scaled. So it seems there is intentionally no way to leave the form small.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1