I am experiencing a difficulty with retrieving the dpi display value. I want my program to draw to the display at actual size. As an example, I want to draw a circle with a 3 inch diameter to the screen and when the display is measured with a ruler, the circle measures 3 inches in diameter. I want to accomplish this without the user having to input any scaling information and regardless of the display resolution the user has implemented on his computer.
Here are the details of my installation from the CodeBlocks Help/About display:
Name : Code::Blocks
Version : 25.03-r13644
SDK Version : 2.25.0
Scintilla Version : 3.7.5
Author : The Code::Blocks Team
E-mail : info@codeblocks.org
Website :
https://www.codeblocks.orgOS : Windows ll (build 26100), 64-bit edition
Scaling factor : 1.000000
Detected scaling factor : 1.000000
Display PPI : 96x96
Display count : 1
Display 0 (\\.\DISPLAY1) : XY=[0,0]; Size=[1920,1080]; Primary
wxWidgets Library (wxMSW port)
Version 3.2.7 (Unicode: wchar_t, debug level: 1),
compiled at Mar 25 2025 17:16:27
Runtime version of toolkit used is 10.0.26100.
I am using a HP laptop that has a display that is 15 inches wide and 8.5 inches high. My calculator tells me that the PPI for 1920x1080 is 127 (close enough) in each direction. As you can see above, the reported Display PPI is 96x96. These are the values I get within my program as well.
If I manually enter the 127 ppi into my program I get the display results I desire (actual size). Is there a mechanism to get the actual ppi from a system call?
Thanks for your help.
Joe