- if (parent)
- parent->AddChild(this);
-
- SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
- SetForegroundColour(parent->GetForegroundColour());
-
- m_windowId = ( id == -1 ) ? (int)NewControlId() : id;
-
- int x = pos.x;
- int y = pos.y;
- int width = size.x;
- int height = size.y;
- m_windowStyle = style;
-
- DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_VSCROLL | WS_TABSTOP |
- LBS_NOTIFY | LBS_HASSTRINGS ;
-
- wxASSERT_MSG( !(style & wxLB_MULTIPLE) || !(style & wxLB_EXTENDED),
- _T("only one of listbox selection modes can be specified") );
-
- if ( (m_windowStyle & wxBORDER_MASK) == wxBORDER_DEFAULT )
- m_windowStyle |= wxBORDER_SUNKEN;
-
- if ( m_windowStyle & wxCLIP_SIBLINGS )
- wstyle |= WS_CLIPSIBLINGS;
-
- if (m_windowStyle & wxLB_MULTIPLE)
- wstyle |= LBS_MULTIPLESEL;
- else if (m_windowStyle & wxLB_EXTENDED)
- wstyle |= LBS_EXTENDEDSEL;
-
- if (m_windowStyle & wxLB_ALWAYS_SB)
- wstyle |= LBS_DISABLENOSCROLL;
- if (m_windowStyle & wxLB_HSCROLL)
- wstyle |= WS_HSCROLL;
- if (m_windowStyle & wxLB_SORT)
- wstyle |= LBS_SORT;
+ // create the native control
+ if ( !MSWCreateControl(_T("LISTBOX"), wxEmptyString, pos, size) )
+ {
+ // control creation failed
+ return false;
+ }