]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
Ensure there is valid context for DrawRectangle
[wxWidgets.git] / src / msw / textctrl.cpp
index fcdb1ab1110f1daf3d2f83ada7bcaf5bb4aa62ee..930b37cd6d61982426c3acc92e7db14a4eeb95a3 100644 (file)
@@ -511,9 +511,23 @@ bool wxTextCtrl::MSWCreateText(const wxString& value,
         // classic mode, i.e. without themes. Also, the margin can be reset to
         // 0 easily by calling SetMargins() explicitly but setting it to the
         // default value is not currently supported.
         // classic mode, i.e. without themes. Also, the margin can be reset to
         // 0 easily by calling SetMargins() explicitly but setting it to the
         // default value is not currently supported.
-        ::SendMessage(GetHwnd(), EM_SETMARGINS,
-                      EC_LEFTMARGIN | EC_RIGHTMARGIN,
-                      MAKELPARAM(EC_USEFONTINFO, EC_USEFONTINFO));
+        //
+        // Finally, notice that EC_USEFONTINFO is used differently for plain
+        // and rich text controls.
+        WPARAM wParam;
+        LPARAM lParam;
+        if ( IsRich() )
+        {
+            wParam = EC_USEFONTINFO;
+            lParam = 0;
+        }
+        else // plain EDIT, EC_USEFONTINFO is used in lParam with them.
+        {
+            wParam = EC_LEFTMARGIN | EC_RIGHTMARGIN;
+            lParam = MAKELPARAM(EC_USEFONTINFO, EC_USEFONTINFO);
+        }
+
+        ::SendMessage(GetHwnd(), EM_SETMARGINS, wParam, lParam);
     }
 #endif // !__WXWINCE__
 
     }
 #endif // !__WXWINCE__
 
@@ -1009,7 +1023,7 @@ wxTextCtrl::StreamOut(wxFontEncoding encoding, bool selectionOnly) const
 
     EDITSTREAM eds;
     wxZeroMemory(eds);
 
     EDITSTREAM eds;
     wxZeroMemory(eds);
-    eds.dwCookie = (DWORD)&data;
+    eds.dwCookie = (DWORD_PTR)&data;
     eds.pfnCallback = wxRichEditStreamOut;
 
     ::SendMessage
     eds.pfnCallback = wxRichEditStreamOut;
 
     ::SendMessage