Scaling query XP vs. Windows 7 RRS feed

  • Question

  • Apologies in advance if I give the appearance of having been living in a cave for the past few years.

    I have been getting round to updating an application built with VC++ 6.0. Took note of high DPI docs* way back in early 2000s and updated app which drew (logical) line width so with inc. DPI monitors would not disappear etc. [*Also more recently Writing DPI-Aware docs.]

    I've been using a test app (WinMap) I wrote which draws x-y scale with facility to switch between inch / mm plus change map mode through MM_HIENGLISH, LOENG, HIMET, LOMET etc.

    [My desktop monitor max resolution 1280 x 1024 call to GetDeviceCaps(LOGPIXELSX) returns 96]

    **** Under XP the screen display scaling is good:

    Measuring 10" x-axis off screen:

    9.9" (Mon. display resolution: 1280 x 1024); 10.1" (1152 x 864); 9.7" (800 x 600)

    All fine and acceptable. (Print out perfect.)


    **** With Windows 7:

    Rebuilt my WinMap application (DPI aware set) with VS2010.

    Standard / default display setting 100% 96dpi

    Measuring 10" x-axis off screen:

    7" (1280 x 1024); 8.8" (1024 x 768); 11.1" (800 x 600)

    (Print out perfect.)

    [With the VC6 build, plus VS2010 (non DPI aware) build for display setting 150% 144dpi, the x axis dimensions respectively: 10.5", 13.3"; 16.4"]

    I can possibly see the logic to this. If you have an application with no scaling the user may want to enlarge it (Previously no go running under Win XP.)

    Although I had previously thought that having set MapMode to a logical value such as MM_HIENGLISH then the screen output would always be a reasonably close fit.

    My questions:

    Is this the way it is now?

    My application does have scaling selection 50% through to 200%. Although now with Win 7 my 100% scaling selection does not represent a near enough match verses printed output for most cases. Is this just an acceptable consequence of trying to satisfy many end users with different screen set ups?

    Any help, elucidation would be appreciated.


    • Moved by Jesse Jiang Monday, September 20, 2010 2:51 AM (From:Visual C++ General)
    Thursday, September 16, 2010 1:21 PM

All replies

  • All I know about this is that Windows 7 introduced automatic DPI configuration, and the virtual DPI is not necessarily equivalent to the actual DPI of the monitor.  Unfortunately I know very little about the DPI configuration, and I am not even sure where you would go to find someone knowledgable about it.  You might try the MSDN forum for user interface development.
    Friday, October 1, 2010 12:35 AM