我有一个使用Combo-box控件的Visual Studio 2005 C ++ MFC项目。物业Type = Dropdown
。该项目最初在UNICODE中,并且组合框控件按预期工作。然后,我必须将字符集从UNICODE更改为多字节字符集,以与特殊工程包(National Instruments的Measurement Studio)中提供的类/库兼容。这样做后,我注意到组合框将不再正常工作(即没有下拉菜单)。为了确认这个发现,我创建了一个大多数空的项目,其中只有一个对话框并且只有组合框控件。后台没有代码。
如果我在编辑器中的"Test Dialog"
它按预期工作。如果我运行程序(无论是否有调试),我都会得到上述行为。如果我将字符集更改为UNICODE,它运行完全正常。
作为旁注,我还注意到在切换到Multi-Byte后我原始项目中某些按钮的外观发生了变化,但我没有测试它们的功能。
是否有一个已知的原因,为什么组合框控件的功能会受到所选字符集的影响?谢谢。
我假设您正在使用资源编辑器填充下拉列表而不是代码?该预填充数据以二进制形式存储在资源文件中,当您将项目类型从Unicode更改为Multibyte时,它不会被转换。尝试删除资源中的所有字符串并重新输入它们。
我能够通过显式调整资源编辑器中的下拉框来解决问题。我没有意识到必须这样做,因为在我的UNICODE版本中,它会自动从资源编辑器中显式设置的下拉框中放大,以便容纳所有条目。它不会自动放大多字节版本。