X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94972183b9ba592cee3a48e7052b3b16d8794dec..cbc82a22cc4cb21fe3ca705ed5da5644cef90e3a:/src/msw/combobox.cpp diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp index 6b3ec7f57f..c85fcede27 100644 --- a/src/msw/combobox.cpp +++ b/src/msw/combobox.cpp @@ -29,6 +29,7 @@ #include "wx/combobox.h" #ifndef WX_PRECOMP + #include "wx/msw/wrapcctl.h" // include "properly" #include "wx/settings.h" #include "wx/log.h" // for wxEVT_COMMAND_TEXT_ENTER @@ -40,9 +41,6 @@ #include "wx/clipbrd.h" #include "wx/msw/private.h" -// include "properly" -#include "wx/msw/wrapcctl.h" - #if wxUSE_TOOLTIPS #include "wx/tooltip.h" #endif // wxUSE_TOOLTIPS @@ -265,6 +263,9 @@ bool wxComboBox::MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam) // when Enter is pressed if ( wParam == VK_RETURN ) { + if (SendMessage(GetHwnd(), CB_GETDROPPEDSTATE, 0, 0)) + return false; + wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId); const int sel = GetSelection(); @@ -594,11 +595,13 @@ bool wxComboBox::IsEditable() const return !HasFlag(wxCB_READONLY); } -void wxComboBox::SetEditable(bool WXUNUSED(editable)) +void wxComboBox::SetEditable(bool editable) { - // Can't implement in MSW? -// HWND hWnd = GetHwnd(); -// SendMessage(hWnd, EM_SETREADONLY, (WPARAM)!editable, (LPARAM)0L); + HWND hWnd = (HWND)GetEditHWND(); + if ( !::SendMessage(hWnd, EM_SETREADONLY, !editable, 0) ) + { + wxLogLastError(_T("SendMessage(EM_SETREADONLY)")); + } } void wxComboBox::SetInsertionPoint(long pos) @@ -606,7 +609,6 @@ void wxComboBox::SetInsertionPoint(long pos) if ( GetWindowStyle() & wxCB_READONLY ) return; -#ifdef __WIN32__ HWND hWnd = GetHwnd(); ::SendMessage(hWnd, CB_SETEDITSEL, 0, MAKELPARAM(pos, pos)); HWND hEditWnd = (HWND) GetEditHWND(); @@ -617,7 +619,6 @@ void wxComboBox::SetInsertionPoint(long pos) // Why is this necessary? (Copied from wxTextCtrl::SetInsertionPoint) SendMessage(hEditWnd, EM_REPLACESEL, 0, (LPARAM) wxEmptyString); } -#endif // __WIN32__ } void wxComboBox::SetInsertionPointEnd()