X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b2739754f76da41764a922b4bb35b420d703956..c1dd939d3b17cc6a6101b5076918786abdf6b226:/src/msw/choice.cpp diff --git a/src/msw/choice.cpp b/src/msw/choice.cpp index c6a9f7909f..c92de5c4cc 100644 --- a/src/msw/choice.cpp +++ b/src/msw/choice.cpp @@ -32,6 +32,7 @@ #include "wx/choice.h" #include "wx/utils.h" #include "wx/log.h" + #include "wx/settings.h" #endif #include "wx/msw/private.h" @@ -75,6 +76,10 @@ bool wxChoice::Create(wxWindow *parent, if ( !MSWCreateControl(wxT("COMBOBOX"), msStyle) ) return FALSE; + // A choice/combobox normally has a white background (or other, depending + // on global settings) rather than inheriting the parent's background colour. + SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); + for ( int i = 0; i < n; i++ ) { Append(choices[i]); @@ -318,15 +323,18 @@ bool wxChoice::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) } int n = GetSelection(); - wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId); - event.SetInt(n); - event.SetEventObject(this); - event.SetString(GetStringSelection()); - if ( HasClientObjectData() ) - event.SetClientObject( GetClientObject(n) ); - else if ( HasClientUntypedData() ) - event.SetClientData( GetClientData(n) ); - ProcessCommand(event); + if (n > -1) + { + wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId); + event.SetInt(n); + event.SetEventObject(this); + event.SetString(GetStringSelection()); + if ( HasClientObjectData() ) + event.SetClientObject( GetClientObject(n) ); + else if ( HasClientUntypedData() ) + event.SetClientData( GetClientData(n) ); + ProcessCommand(event); + } return TRUE; }