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