Fixed "Failed to set clipboard data. (error 1418: thread does not have
authorRobin Dunn <robin@alldunn.com>
Tue, 31 Jul 2001 21:30:30 +0000 (21:30 +0000)
committerRobin Dunn <robin@alldunn.com>
Tue, 31 Jul 2001 21:30:30 +0000 (21:30 +0000)
a clipboard open.)" error when using wxTextCtrl::Replace

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/textctrl.cpp

index caa8d82fe0bf23e8640ba183ba27e9e333966397..e83cf09c9aa4c8b19fcd99c1a9b09a4b0f8cc2fc 100644 (file)
@@ -690,10 +690,13 @@ void wxTextCtrl::Replace(long from, long to, const wxString& value)
     SendMessage(hWnd, WM_CUT, (WPARAM)0, (LPARAM)0);
 
     // Now replace with 'value', by pasting.
-    wxSetClipboardData(wxDF_TEXT, (wxObject *) (const wxChar *)value, 0, 0);
+    if (wxOpenClipboard()) {
+        wxSetClipboardData(wxDF_TEXT, (wxObject *) (const wxChar *)value, 0, 0);
+        wxCloseClipboard();
 
-    // Paste into edit control
-    SendMessage(hWnd, WM_PASTE, (WPARAM)0, (LPARAM)0L);
+        // Paste into edit control
+        SendMessage(hWnd, WM_PASTE, (WPARAM)0, (LPARAM)0L);
+    }
 #else
     wxFAIL_MSG("wxTextCtrl::Replace not implemented if wxUSE_CLIPBOARD is 0.");
 #endif