HSCROLL и VSCROLL в Combobox

Я успешно создал комбинированный список с HSROLL следующее:

HWND find = CreateWindowEx(0, WC_COMBOBOX, _T(""), CBS_DROPDOWN | WS_VISIBLE | WS_CHILD |     
                           CBS_AUTOHSCROLL | WS_HSCROLL | WS_VSCROLL,0, 1, 100 30,
                           hwndToolbar, (HMENU)0, ghinst, NULL);

SendMessage(find, CB_SETHORIZONTALEXTENT, (WPARAM)1000, 0);

Но это также дает VSCROLL, даже если есть только 2 пункта. Это очень некрасиво. Если я уроню WS_VSCROLL, это решает проблему.

С другой стороны, я также использовал:

SendMessage(find, CB_SETMINVISIBLE, (WPARAM)20, 0);

показывать только 20 предметов, остальные предметы показаны VSCROLL, Панель прокрутки VScroll появится, только если в ней более 20 элементов. Поэтому я не могу бросить WS_VSCROLL,

Есть ли у вас какие-либо идеи о том, как использовать "CB_SETHORIZONTALEXTENT" без панели VSCROLL, когда элементов меньше?

0 ответов

Кажется, высота поля со списком слишком мала, чтобы вместить количество элементов. В раскрывающемся списке будет показано столько элементов, сколько указано в высоте. Если элементы не могут уместиться на этой высоте, появится вертикальная полоса прокрутки.

Другие вопросы по тегам