+ // create the control visible if it's currently shown for wxWindows
+ if ( m_isShown )
+ {
+ style |= WS_VISIBLE;
+ }
+
+ // choose the position for the control
+ int x = pos.x == -1 ? 0 : pos.x,
+ y = pos.y == -1 ? 0 : pos.y,
+ w = size.x == -1 ? 0 : size.x,
+ h = size.y == -1 ? 0 : size.y;
+
+ // ... and adjust it to account for ap ossible parent frames toolbar
+ AdjustForParentClientOrigin(x, y);
+
+ m_hWnd = (WXHWND)::CreateWindowEx
+ (
+ exstyle, // extended style
+ classname, // the kind of control to create
+ label, // the window name
+ style, // the window style
+ x, y, w, h, // the window position and size
+ GetHwndOf(GetParent()), // parent
+ (HMENU)GetId(), // child id
+ wxGetInstance(), // app instance
+ NULL // creation parameters
+ );
+
+ if ( !m_hWnd )
+ {
+ wxLogDebug(wxT("Failed to create a control of class '%s'"), classname);
+ wxFAIL_MSG(_T("something is very wrong"));
+
+ return FALSE;
+ }
+
+#if wxUSE_CTL3D
+ if ( want3D )
+ {
+ Ctl3dSubclassCtl(GetHwnd());
+ m_useCtl3D = TRUE;
+ }
+#endif // wxUSE_CTL3D