Visual Studio C ++组合框控件不适用于多字节字符集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio C ++组合框控件不适用于多字节字符集相关的知识,希望对你有一定的参考价值。

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

是否有一个已知的原因,为什么组合框控件的功能会受到所选字符集的影响?谢谢。

答案

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

另一答案

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

以上是关于Visual Studio C ++组合框控件不适用于多字节字符集的主要内容,如果未能解决你的问题,请参考以下文章

Visual C#中用户控件的用途是什么?

C#winform文本框控件程序中不显示( 页面设计中显示),这是啥情况?

如何从Visual Studio 2017中的组合框中删除TFS存储库帐户

如何提取编辑框控件用户输入的内容并对其转换/比较?(c语言 API)

在 Visual Studio MFC 中,我可以在组合框中包含文本但在代码中获取 int 吗?

visual studio 怎样快速注释选中的行