Строки Unicode не отображаются в Win32 ComboBoxEx - PullRequest
1 голос
/ 15 июля 2011

Я создаю WC_COMBOBOXEX в Windows Vista и добавляю в него строки, но они не отображаются в элементе управления. Те же строки отображаются нормально, если я использую старый WC_COMBOBOX с CB_ADDSTRING.

Я вызываю InitCommonControlsEx с ICC_USEREX_CLASSES и создаю comboboxex, используя CreateWindowEx со стилем WS_CHILD|WS_CLIPSIBLINGS|CBS_SIMPLE|CBS_SORT|CBS_HASSTRINGS (без расширенных стилей). Я добавляю строки, используя

COMBOBOXEXITEM cbem = {0};
cbem.mask    = CBEIF_TEXT;
cbem.iItem   = -1;
cbem.pszText = L"hello";
SendMessage(hWnd_, CBEM_INSERTITEM, 0, TOLPARAM(&cbem));

Поле со списком появляется пустым, но когда я перемещаю курсор вверх и вниз в окне editcontrol / listbox, я иногда вижу забавные символы блока.

В конце концов, я хочу добавить его как CBS_DROPDOWNLIST к элементу управления арматурой, но я где-то читал, что comboboxex работает там намного лучше, чем старый combobox.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 июля 2011

Из MSDN:

Элементы управления ComboBoxEx поддерживают только следующие стили ComboBox:

CBS_SIMPLE
CBS_DROPDOWN
CBS_DROPDOWNLIST
WS_CHILD

Так что CBS_SORT и CBS_HASSTRINGS могут испортить биты стиля.

0 голосов
/ 15 июля 2011

Поможет ли вам отправить CBEM_SETUNICODEFORMAT?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...