使用VB6.0制作不同语言(孟加拉语)的菜单

使用VB6.0制作不同语言(孟加拉语)的菜单,vb6,internationalization,Vb6,Internationalization,我想使菜单,可以显示在一个特定的语言以外的英语菜单项。 VB6.0的菜单编辑器中没有字体选择条件 那么我该怎么做呢???使用的字体取决于Windows的版本,并且应该能够处理Windows配置的任何语言。VB6窗体和控件使用电脑上的当前语言。您没有提到当前的Windows代码页是否支持要使用的语言 如果当前代码页确实支持您想要使用的语言,则没有问题。一切都应该正常。您可能需要更改表单的字体,在设计器中选择表单本身并使用“属性”框 如果当前的代码页不支持您想要使用的语言,那么不付出巨大的努力就无法

我想使菜单,可以显示在一个特定的语言以外的英语菜单项。 VB6.0的菜单编辑器中没有字体选择条件
那么我该怎么做呢???

使用的字体取决于Windows的版本,并且应该能够处理Windows配置的任何语言。

VB6窗体和控件使用电脑上的当前语言。您没有提到当前的Windows代码页是否支持要使用的语言

如果当前代码页确实支持您想要使用的语言,则没有问题。一切都应该正常。您可能需要更改表单的字体,在设计器中选择表单本身并使用“属性”框 如果当前的代码页不支持您想要使用的语言,那么不付出巨大的努力就无法成功。我不想这么说,但如果可能的话,我建议改用VB.net。
您可以通过使用资源文件来完成所需的任务。让你开始

不久前,我用阿拉伯语做了这件事——例如,我用1000的资源偏移量表示英语,2000的资源偏移量表示阿拉伯语。然后可以加载所需的字符串,例如:

LoadResString(1+1000) ' to load the English String
LoadResString(1+2000) ' to load the Arabic (or Bangla) String

您只需要确保在创建资源文件时,您的计算机使用的是正确的语言环境-希望您能从正确的轨道开始

VB6是一个ANSI外部应用程序。它在内部和COM中都是unicode。但是,与API调用相关的任何直接或间接的操作都使用ANSI

创建窗体等窗口时,如果是ANSI程序,则使用CreateWindowsExA;如果是unicode,则使用CreateWindowsW。如果您使用的是ANSI版本,那么一切都是ANSI。Windows发送到窗口的所有字符串都是ANSI,Windows假定您只返回ANSI字符串

当VB发布时,大多数安装的Windows无法使用unicode

您可以使用unicode字符的字节数组(而不是字符串)将这些函数作为unicode direct调用。您只传递数组中的第一个字节,windows认为它是unicode字符串

如果您打算这样做,您需要阅读基本的C示例,这并不困难,因为这是用语言完成的。其他人都使用表单包

现在对于东亚语言,他们使用DBC。它类似于UTF8,但与unicode无关。Windows自动进行转换

请参见区域设置中的非unicode设置

这是我的帮助

使用仅为SBCS字符设计的字体时,DBCS字符可能无法在DBCS版本的Windows中正确显示。使用Visual Basic的英文版本或任何其他SBCS语言版本开发启用DBCS的应用程序时,需要更改字体对象的Name属性。Name属性确定用于在控件、运行时图形或打印操作期间显示文本的字体。此属性的默认设置为英文版Visual Basic中的MS Sans Serif。要在DBCS环境中正确显示文本,必须将设置更改为适用于将运行应用程序的DBCS环境的适当字体。您可能还需要通过更改字体对象的size属性来更改字体大小。通常,在大多数东亚平台上,应用程序中的文本以9点字体显示效果最好,而在欧洲平台上则以8点字体显示


这些注意事项也适用于在应用程序中打印DBCS字符。

您是否确实尝试了一些代码但失败了,或者这只是一个概念问题?资源文件中已经内置了区域设置选择。只需在适当标识的字符串表中对相同的字符串使用相同的ID即可。