comctl32: Fixed height of comboboxex32.
This commit is contained in:
parent
dbc8c9c299
commit
d668e76461
|
@ -1693,7 +1693,7 @@ static LRESULT COMBOEX_WindowPosChanging (const COMBOEX_INFO *infoPtr, WINDOWPOS
|
||||||
height = (cb_wrect.bottom-cb_wrect.top)
|
height = (cb_wrect.bottom-cb_wrect.top)
|
||||||
+ (cbx_wrect.bottom-cbx_wrect.top)
|
+ (cbx_wrect.bottom-cbx_wrect.top)
|
||||||
- (cbx_crect.bottom-cbx_crect.top);
|
- (cbx_crect.bottom-cbx_crect.top);
|
||||||
if (wp->cy < height) wp->cy = height;
|
wp->cy = height;
|
||||||
if (infoPtr->hwndEdit) {
|
if (infoPtr->hwndEdit) {
|
||||||
COMBOEX_AdjustEditPos (infoPtr);
|
COMBOEX_AdjustEditPos (infoPtr);
|
||||||
InvalidateRect (infoPtr->hwndCombo, 0, TRUE);
|
InvalidateRect (infoPtr->hwndCombo, 0, TRUE);
|
||||||
|
|
|
@ -380,6 +380,53 @@ static void test_CB_GETLBTEXT(void)
|
||||||
DestroyWindow(hCombo);
|
DestroyWindow(hCombo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_WM_WINDOWPOSCHANGING(void)
|
||||||
|
{
|
||||||
|
HWND hCombo;
|
||||||
|
WINDOWPOS wp;
|
||||||
|
RECT rect;
|
||||||
|
int combo_height;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
hCombo = createComboEx(WS_BORDER | WS_VISIBLE | WS_CHILD | CBS_DROPDOWN);
|
||||||
|
ok(hCombo != NULL, "createComboEx failed\n");
|
||||||
|
ret = GetWindowRect(hCombo, &rect);
|
||||||
|
ok(ret, "GetWindowRect failed\n");
|
||||||
|
combo_height = rect.bottom - rect.top;
|
||||||
|
ok(combo_height > 0, "wrong combo height\n");
|
||||||
|
|
||||||
|
/* Test height > combo_height */
|
||||||
|
wp.x = rect.left;
|
||||||
|
wp.y = rect.top;
|
||||||
|
wp.cx = (rect.right - rect.left);
|
||||||
|
wp.cy = combo_height * 2;
|
||||||
|
wp.flags = 0;
|
||||||
|
wp.hwnd = hCombo;
|
||||||
|
wp.hwndInsertAfter = NULL;
|
||||||
|
|
||||||
|
ret = SendMessageA(hCombo, WM_WINDOWPOSCHANGING, 0, (LPARAM)&wp);
|
||||||
|
ok(ret == 0, "expected 0, got %x", ret);
|
||||||
|
ok(wp.cy == combo_height,
|
||||||
|
"Expected height %d, got %d\n", combo_height, wp.cy);
|
||||||
|
|
||||||
|
/* Test height < combo_height */
|
||||||
|
wp.x = rect.left;
|
||||||
|
wp.y = rect.top;
|
||||||
|
wp.cx = (rect.right - rect.left);
|
||||||
|
wp.cy = combo_height / 2;
|
||||||
|
wp.flags = 0;
|
||||||
|
wp.hwnd = hCombo;
|
||||||
|
wp.hwndInsertAfter = NULL;
|
||||||
|
|
||||||
|
ret = SendMessageA(hCombo, WM_WINDOWPOSCHANGING, 0, (LPARAM)&wp);
|
||||||
|
ok(ret == 0, "expected 0, got %x", ret);
|
||||||
|
ok(wp.cy == combo_height,
|
||||||
|
"Expected height %d, got %d\n", combo_height, wp.cy);
|
||||||
|
|
||||||
|
ret = DestroyWindow(hCombo);
|
||||||
|
ok(ret, "DestroyWindow failed\n");
|
||||||
|
}
|
||||||
|
|
||||||
static LRESULT CALLBACK ComboExTestWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
static LRESULT CALLBACK ComboExTestWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
switch(msg) {
|
switch(msg) {
|
||||||
|
@ -528,6 +575,7 @@ START_TEST(comboex)
|
||||||
test_comboboxex();
|
test_comboboxex();
|
||||||
test_WM_LBUTTONDOWN();
|
test_WM_LBUTTONDOWN();
|
||||||
test_CB_GETLBTEXT();
|
test_CB_GETLBTEXT();
|
||||||
|
test_WM_WINDOWPOSCHANGING();
|
||||||
test_comboboxex_subclass();
|
test_comboboxex_subclass();
|
||||||
test_get_set_item();
|
test_get_set_item();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue