Элемент управления Visual Studio C ++ Combo Box не работает с многобайтовым набором символов - PullRequest
0 голосов
/ 01 декабря 2010

У меня есть проект Visual Studio 2005 C ++ MFC, который использует элемент управления Combo-box. Недвижимость Type = Dropdown. Первоначально проект был в UNICODE, а элемент управления комбинированного списка работал, как и ожидалось. Затем мне пришлось изменить набор символов с UNICODE на Multi-Byte Character Set, чтобы он был совместим с классами / библиотеками, доступными в специальном инженерном пакете Measurement Studio от National Instruments. После этого я заметил, что поле со списком больше не будет работать должным образом (то есть без выпадающего меню). Чтобы подтвердить это, я создал в основном пустой проект с одним диалогом и только с элементом управления со списком. Нет кода на заднем плане.
Если я "Test Dialog" в редакторе, он работает как положено. Если я запускаю программу (с отладкой или без), я получаю поведение, описанное выше. Если я изменю набор символов на UNICODE, он будет работать отлично.
В качестве примечания я также заметил, что внешний вид некоторых кнопок в моем исходном проекте изменился после перехода на многобайтовый режим, но я не проверял их функциональность.

Известна ли причина, по которой выбранный набор символов будет влиять на функциональность элемента управления поля со списком? Спасибо.

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

Полагаю, вы используете редактор ресурсов для заполнения раскрывающегося списка, а не кода? Эти предварительно заполненные данные хранятся в файле ресурсов в двоичном виде и не будут преобразованы при изменении типа проекта с Unicode на Multibyte. Попробуйте удалить все строки из ресурса и повторно ввести их.

0 голосов
/ 01 декабря 2010

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

...