]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
use symbolic name for the shell menu bar too; include resources.h in wince.rc directl...
[wxWidgets.git] / src / msw / textctrl.cpp
index 02f25eabc3d32f97cbee1c88d90f76e7895e74b0..567a88962093cdb2b649e33097e03e0886585510 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"
@@ -445,7 +446,7 @@ bool wxTextCtrl::MSWCreateText(const wxString& value,
         valueWin = value;
     }
 
-    if ( !MSWCreateControl(windowClass, msStyle, pos, size, valueWin) )
+    if ( !MSWCreateControl(windowClass.wx_str(), msStyle, pos, size, valueWin) )
         return false;
 
 #if wxUSE_RICHEDIT
@@ -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) )
@@ -924,7 +927,7 @@ wxTextCtrl::StreamIn(const wxString& value,
 #else // !wxUSE_UNICODE_MSLU
     wxCSConv conv(encoding);
 
-    const size_t len = conv.MB2WC(NULL, value, value.length());
+    const size_t len = conv.MB2WC(NULL, value.mb_str(), value.length());
 
 #if wxUSE_WCHAR_T
     wxWCharBuffer wchBuf(len);
@@ -934,7 +937,7 @@ wxTextCtrl::StreamIn(const wxString& value,
     wchar_t *wpc = wchBuf;
 #endif
 
-    conv.MB2WC(wpc, value, value.length());
+    conv.MB2WC(wpc, value.mb_str(), value.length());
 #endif // wxUSE_UNICODE_MSLU
 
     // finally, stream it in the control
@@ -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) )
         {