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