]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/button.cpp
some wxArtProv docs
[wxWidgets.git] / src / msw / button.cpp
index 5cb83273d77c78e44c53b521f4dd2967a1751951..2cafeca17ec76c63158349cf24ff0685423177c4 100644 (file)
@@ -71,7 +71,24 @@ bool wxButton::Create(wxWindow *parent,
     if ( !CreateControl(parent, id, pos, size, style, validator, name) )
         return FALSE;
 
-    return MSWCreateControl(_T("BUTTON"), label, pos, size, style);
+    WXDWORD exstyle;
+    WXDWORD msStyle = MSWGetStyle(style, &exstyle);
+
+#ifdef __WIN32__
+    // if the label contains several lines we must explicitly tell the button
+    // about it or it wouldn't draw it correctly ("\n"s would just appear as
+    // black boxes)
+    //
+    // NB: we do it here and not in MSWGetStyle() because we need the label
+    //     value and m_label is not set yet when MSWGetStyle() is called;
+    //     besides changing BS_MULTILINE during run-time is pointless anyhow
+    if ( label.find(_T('\n')) != wxString::npos )
+    {
+        msStyle |= BS_MULTILINE;
+    }
+#endif // __WIN32__
+
+    return MSWCreateControl(_T("BUTTON"), msStyle, pos, size, label, exstyle);
 }
 
 wxButton::~wxButton()