Элемент управления Combo Box Visual Studio C ++ не работает с многобайтовым набором символов

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

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


person Mike    schedule 30.11.2010    source источник


Ответы (2)


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

person Mark Ransom    schedule 30.11.2010
comment
Марк, спасибо за ответ. Я смог решить проблему согласно моему ответу. - person Mike; 01.12.2010

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

person Mike    schedule 01.12.2010
comment
Это действительно странно. Я никогда не замечал разницы в поведении между двумя режимами, и размер по умолчанию должен показывать как минимум пару строк. - person Mark Ransom; 02.12.2010