]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
do use the font in DoGetTextExtent()
[wxWidgets.git] / src / msw / textctrl.cpp
index 02f25eabc3d32f97cbee1c88d90f76e7895e74b0..04cc73d26a5f82ecc0ce76137e22243c4da43f75 100644 (file)
@@ -37,6 +37,7 @@
     #include "wx/menu.h"
     #include "wx/math.h"
     #include "wx/module.h"
+    #include "wx/wxcrtvararg.h"
 #endif
 
 #include "wx/sysopt.h"
@@ -608,10 +609,12 @@ WXDWORD wxTextCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
 
 void wxTextCtrl::SetWindowStyleFlag(long style)
 {
-    // changing the alignment of the control dynamically only works under XP
-    // (but not older Windows version) and only for plain EDIT controls (not
-    // RICH ones) and we have to recreate the control to make it always work
-    if ( IsRich() || wxGetWinVersion() < wxWinVersion_XP )
+    // changing the alignment of the control dynamically works under Win2003
+    // (but not older Windows version: it seems to work under some versions of
+    // XP but not other ones, and we have no way to determine it so be
+    // conservative here) and only for plain EDIT controls (not RICH ones) and
+    // we have to recreate the control to make it always work
+    if ( IsRich() || wxGetWinVersion() < wxWinVersion_2003 )
     {
         const long alignMask = wxTE_LEFT | wxTE_CENTRE | wxTE_RIGHT;
         if ( (style & alignMask) != (GetWindowStyle() & alignMask) )
@@ -1113,7 +1116,7 @@ void wxTextCtrl::DoWriteText(const wxString& value, int flags)
 
         ::SendMessage(GetHwnd(), selectionOnly ? EM_REPLACESEL : WM_SETTEXT,
                       // EM_REPLACESEL takes 1 to indicate the operation should be redoable
-                      selectionOnly ? 1 : 0, (LPARAM)valueDos.c_str());
+                      selectionOnly ? 1 : 0, (LPARAM)valueDos.wx_str());
 
         if ( !ucf.GotUpdate() && (flags & SetValue_SendEvent) )
         {