ListView显示错误的文本VB6.0

时间:2015-03-03 10:20:24

标签: listview unicode vb6 codepages

我一直在使用listView测试一个应用程序,它适用于西欧角色。但是,如果区域设置是土耳其语,则列表视图中的字符似乎是错误的。

例如,字符'Ş'将显示为'Þ'。

我可以看到两个字符都表示为十进制:254。

如何强制我的listView使用本地代码页而不是unicode?

感谢您的任何建议。

3 个答案:

答案 0 :(得分:1)

如果它在VB表单包中,它不会使用unicode。

VB6是一个ANSI应用程序(Win95没有unicode API)。内部使用Unicode以及使用COM时。但是创建一个列表框的窗口使用ANSI。

因此,您需要在区域设置中设置nonunicode代码页。

此外,帮助还有一整章。

答案 1 :(得分:0)

结果证明你可以设置下面列出的listview的字符集:

listView.Font.Charset = 1 ' Default charset obtains current codepage

这解决了我的问题,尽管语言格式需要与Locale相同。

答案 2 :(得分:0)

MSHFlexGrid提供的一件事是Unicode支持。 VB6中根本没有“Unicode问题”,这是选择正确控件的问题。

如果有一个超越VB6的演变,我们已经看到更多的控件转移到Unicode,因为Win9x消失了。可悲的是,这被缩短了。

如果您需要Unicode ListView, 可以做的事情。有第三方控件甚至方法可以使用Unicode子类化在OCX中的ListView控件包装器下挖洞。