+ ::SendMessage(GetHwnd(), CB_GETEDITSEL, (WPARAM) & oldSelStart, (LPARAM) & oldSelEnd);
+
+ wxControl::DoSetSize(x, y, width, height, sizeFlags);
+
+ ::SendMessage(GetHwnd(), CB_GETEDITSEL, (WPARAM) & newSelStart, (LPARAM) & newSelEnd);
+
+ if (oldSelStart != newSelStart || oldSelEnd != newSelEnd)
+ {
+ ::SendMessage(GetHwnd(), CB_SETEDITSEL, (WPARAM) 0, (LPARAM) MAKELPARAM(oldSelStart, oldSelEnd));
+ }
+
+ // I'm commenting this out since the code appears to make choices
+ // and comboxes too high when they have associated sizers. I'm sure this
+ // is not the end of the story, which is why I'm leaving it #if'ed out for
+ // now. JACS.
+#if 0
+ // if the height specified for the visible part of the control is
+ // different from the current one, we need to change it separately
+ // as it is not affected by normal WM_SETSIZE
+ if ( height != wxDefaultCoord )
+ {
+ const int delta = heightOrig - GetSize().y;
+ if ( delta )
+ {
+ int h = ::SendMessage(GetHwnd(), CB_GETITEMHEIGHT, (WPARAM)-1, 0);
+ SendMessage(GetHwnd(), CB_SETITEMHEIGHT, (WPARAM)-1, h + delta);
+ }
+ }
+#else
+ wxUnusedVar(heightOrig);
+#endif