- // base init
- if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
- return FALSE;
-
- // colors and font
- m_backgroundColour = wxColour(GetSysColor(COLOR_BTNFACE));
- m_foregroundColour = *wxBLACK ;
-
- // style
- m_windowStyle = style | wxTAB_TRAVERSAL;
-
- long tabStyle = WS_CHILD | WS_VISIBLE | WS_TABSTOP | TCS_TABS;
-
- if (m_windowStyle & wxCLIP_CHILDREN)
- tabStyle |= WS_CLIPCHILDREN;
- if ( m_windowStyle & wxTC_MULTILINE )
- tabStyle |= TCS_MULTILINE;
- if ( m_windowStyle & wxBORDER )
- tabStyle &= WS_BORDER;
- if (m_windowStyle & wxNB_FIXEDWIDTH)
- tabStyle |= TCS_FIXEDWIDTH ;
- if (m_windowStyle & wxNB_BOTTOM)
- tabStyle |= TCS_RIGHT;
- if (m_windowStyle & wxNB_LEFT)
- tabStyle |= TCS_VERTICAL;
- if (m_windowStyle & wxNB_RIGHT)
- tabStyle |= TCS_VERTICAL|TCS_RIGHT;
-
-
- if ( !MSWCreate(GetId(), GetParent(), WC_TABCONTROL,
- this, NULL, pos.x, pos.y, size.x, size.y,
- tabStyle, NULL, 0) )
- {
- return FALSE;
- }
-
- // Not all compilers recognise SetWindowFont
- ::SendMessage(GetHwnd(), WM_SETFONT,
- (WPARAM)::GetStockObject(DEFAULT_GUI_FONT), TRUE);
-
+ // Does ComCtl32 support non-top tabs?
+ int verComCtl32 = wxApp::GetComCtl32Version();
+ if ( verComCtl32 < 470 || verComCtl32 >= 600 )
+ {
+ if (style & wxNB_BOTTOM)
+ style &= ~wxNB_BOTTOM;
+
+ if (style & wxNB_LEFT)
+ style &= ~wxNB_LEFT;
+
+ if (style & wxNB_RIGHT)
+ style &= ~wxNB_RIGHT;
+ }
+
+ if ( !CreateControl(parent, id, pos, size, style | wxTAB_TRAVERSAL,
+ wxDefaultValidator, name) )
+ return FALSE;