+bool wxChoice::Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ wxCArrayString chs(choices);
+ return Create(parent, id, pos, size, chs.GetCount(), chs.GetStrings(),
+ style, validator, name);
+}
+
+WXDWORD wxChoice::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+ // we never have an external border
+ WXDWORD msStyle = wxControl::MSWGetStyle
+ (
+ (style & ~wxBORDER_MASK) | wxBORDER_NONE, exstyle
+ );
+
+ // WS_CLIPSIBLINGS is useful with wxChoice and doesn't seem to result in
+ // any problems
+ msStyle |= WS_CLIPSIBLINGS;
+
+ // wxChoice-specific styles
+ msStyle |= CBS_DROPDOWNLIST | WS_HSCROLL | WS_VSCROLL;
+ if ( style & wxCB_SORT )
+ msStyle |= CBS_SORT;
+
+ return msStyle;
+}
+