const wxValidator& validator,
                         const wxString& name)
 {
+    // pretend that wxComboBox is hidden while it is positioned and resized and
+    // show it only right before leaving this method because otherwise there is
+    // some noticeable flicker while the control rearranges itself
+    m_isShown = FALSE;
+
     // first create wxWin object
     if ( !CreateControl(parent, id, pos, size, style, validator, name) )
         return FALSE;
                                       );
     }
 
+    // and finally, show the control
+    Show(TRUE);
+
     return TRUE;
 }
 
 
         exstyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D);
     }
 
-    // all controls should have these styles (wxWindows creates all controls
-    // visible by default)
-    style |= WS_CHILD | WS_VISIBLE;
+    // all controls should have this style
+    style |= WS_CHILD;
+
+    // create the control visible if it's currently shown for wxWindows
+    if ( m_isShown )
+    {
+        style |= WS_VISIBLE;
+    }
 
     int x = pos.x == -1 ? 0 : pos.x,
         y = pos.y == -1 ? 0 : pos.y,