2015-03-03 88 views
2

我一直在测试一个应用程序使用listView,它适用于西欧字符。但是,如果区域设置是土耳其语,则字符在列表视图中显示为错误。ListView显示错误的文本VB6.0

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

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

我怎么能强迫我的ListView使用本地代码页而不是Unicode的?

感谢您的任何建议。

回答

1

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

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

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

此外,帮助有一整章。

+0

http://support.microsoft.com/kb/193540 – Rob 2015-03-04 00:20:26

0

原来可以设置ListView控件的字符集概述如下:

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

虽然语言格式需要是相同为Locale这解决了我的问题。

0

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

如果在VB6之后进行过一次进化,那么当Win9x离开时我们会看到更多的控件移动到Unicode。可悲的是这被缩短了。

如果你需要一个Unicode ListView那里你可以做的事情。有第三方控件或甚至可以使用Unicode子类在OCX中的ListView控件包装器下挖掘的方法。