VB写程序XP化后中文处理问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 19:15:01
我用VB写了一个纯文字处理工具,但当我对其XP界面化后(用InitCommonControls函数),处理中文出错了(好象把中文当成2个字符处理了)

XP化的XML源码是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="DelphiApplication"
version="1.0.0.0"
processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
</assembly>

郁闷,刚才发错分类了...
250分,速度解决!
StrLen = Len(Text1.SelText)
Text1.SelStart

不要用VB程序去做XP界面化处理,这个东西有严重的兼容性问题。
在正式开发中是不用的。如果你确实想的话,把所有的STRING类型都转化成Unicode的格式,用convert函数。

语法:
StrConv 函数

返回按指定类型转换的 Variant (String)。

语法

StrConv(string, conversion, LCID)

StrConv 函数的语法有下面的命名参数:

部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)

设置值

conversion 参数的设置值为:

常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。

vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。

*应用到远东国别。

**仅应用到日本。

搞定了!这个编译运行试试看!

Option Explicit
Public HE As Long
Private Declare Sub InitCommonControls L