]> git.saurik.com Git - wxWidgets.git/commitdiff
use screen resolution, not hard coded one
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 13 Apr 2001 14:43:23 +0000 (14:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 13 Apr 2001 14:43:23 +0000 (14:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9744 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/font.cpp
src/msw/fontutil.cpp

index c4392218bdfd8a7fbf3646c8a131d18dc03f6942..39f7d08a7e515d3cbdb8592cf2506f73e76e4942 100644 (file)
@@ -218,16 +218,10 @@ void wxFontRefData::Init(const wxNativeFontInfo& info)
 
     m_faceName = info.lf.lfFaceName;
 
-    // remember that 1pt = 1/72inch
     int height = abs(info.lf.lfHeight);
 
-#if wxUSE_SCREEN_DPI
-    HDC dc = ::GetDC(NULL);
-    static const int ppInch = GetDeviceCaps(dc, LOGPIXELSY);
-    ::ReleaseDC(NULL, dc);
-#else
-    static const int ppInch = 96;
-#endif
+    // remember that 1pt = 1/72inch
+    const int ppInch = ::GetDeviceCaps(ScreenHDC(), LOGPIXELSY);
     m_pointSize = (int) (((72.0*((double)height))/(double) ppInch) + 0.5);
 
     m_encoding = wxGetFontEncFromCharSet(info.lf.lfCharSet);
index b8daf3dcdb01bce1cba14102824a8c85ae0b2134..065b899c615336f68194bdcbc3ac0f437eba723d 100644 (file)
 
 #include "wx/tokenzr.h"
 
-// If 1, use the screen resolution to calculate font sizes.
-// This is OK for screen fonts but might have implications when the
-// same font is used for printing.
-// If 0, assume 96 DPI.
-#define wxUSE_SCREEN_DPI 1
-
 // ============================================================================
 // implementation
 // ============================================================================
@@ -339,24 +333,28 @@ void wxFillLogFont(LOGFONT *logFont, const wxFont *font)
             break;
     }
 
-#if wxUSE_SCREEN_DPI
-    HDC dc = ::GetDC(NULL);
-    static const int ppInch = ::GetDeviceCaps(dc, LOGPIXELSY);
-    ::ReleaseDC(NULL, dc);
-#else
+    // VZ: I'm reverting this as we clearly must use the real screen
+    //     resolution instead of hardcoded one or it surely will fail to work
+    //     in some cases.
+    //
+    //     If there are any problems with this code, please let me know about
+    //     it instead of reverting this change, thanks!
+#if 1 // wxUSE_SCREEN_DPI
+    const int ppInch = ::GetDeviceCaps(ScreenHDC(), LOGPIXELSY);
+#else // 0
     // New behaviour: apparently ppInch varies according to Large/Small Fonts
     // setting in Windows. This messes up fonts. So, set ppInch to a constant
     // 96 dpi.
     static const int ppInch = 96;
-#endif // 0/1
+#endif // 1/0
 
+    int pointSize = font->GetPointSize();
 #if wxFONT_SIZE_COMPATIBILITY
     // Incorrect, but compatible with old wxWindows behaviour
-    int nHeight = (font->GetPointSize()*ppInch/72);
+    int nHeight = (pointSize*ppInch)/72;
 #else
     // Correct for Windows compatibility
-//    int nHeight = - (font->GetPointSize()*ppInch/72);
-    int nHeight = - (int) ( (font->GetPointSize()*((double)ppInch)/72.0) + 0.5);
+    int nHeight = -(int)((pointSize*((double)ppInch)/72.0) + 0.5);
 #endif
 
     wxString facename = font->GetFaceName();