0

我有一个使用组合框控件的 Visual Studio 2005 C++ MFC 项目。财产Type = Dropdown。该项目最初是在 UNICODE 中,组合框控件按预期工作。然后,我不得不将字符集从 UNICODE 更改为多字节字符集,以与 National Instruments 的 Measurement Studio 特殊工程包中可用的类/库兼容。这样做后,我注意到组合框将不再正常工作(即没有下拉菜单)。为了确认这一发现,我创建了一个大部分为空的项目,其中只有一个对话框,上面只有组合框控件。后台没有代码。
如果我"Test Dialog"在编辑器中它按预期工作。如果我运行程序(无论是否有调试),我都会得到上述行为。如果我将字符集更改为 UNICODE,它运行得非常好。
作为旁注,我还注意到在切换到多字节后,我的原始项目中的一些按钮的外观发生了变化,但我没有测试它们的功能。

组合框控件的功能会受到所选字符集影响的已知原因吗?谢谢。

4

2 回答 2

1

我假设您使用资源编辑器来填充下拉列表,而不是代码?该预填充数据以二进制形式存储在资源文件中,当您将项目类型从 Unicode 更改为 Multibyte 时,它​​不会被转换。尝试从资源中删除所有字符串并重新输入它们。

于 2010-11-30T22:30:33.887 回答
0

我能够通过在资源编辑器中显式调整下拉框的大小来解决问题。我没有意识到必须这样做,因为在我的 UNICODE 版本中,它会自动放大资源编辑器中明确设置的下拉框,以容纳所有条目。它不会在多字节版本中自动放大。

于 2010-12-01T18:15:48.977 回答