]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
fixing the shrinking embedded controls
[wxWidgets.git] / src / msw / textctrl.cpp
index 02f25eabc3d32f97cbee1c88d90f76e7895e74b0..8e7fd4e662242b5ac82f37ada1e45de40be5555a 100644 (file)
@@ -608,10 +608,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 +1115,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) )
         {