使用VB6.0制作不同语言的菜单(孟加拉语)
我想制作可以用英语以外的特定语言显示菜单项的菜单。 VB6.0的菜单编辑器中没有字体选择标准 那么我该怎么做呢?
I want to make menu that can show menu items in a particular language other than English.
There is no font selection criteria in Menu Editor of VB6.0
So how can i do that??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
VB6 外部是 ANSI 应用程序。它内部和 COM 中都是 unicode。然而,任何与 API 调用相关的事情,无论是直接还是间接,都使用 ANSI。
当您创建窗口(例如窗体)时,如果您是 ANSI 程序,则您或 VB 使用 CreateWindowsExA;如果是 unicode,则使用 CreateWindowsW。如果您使用 ANSI 版本,那么一切都是 ANSI。 Windows 发送到窗口的所有字符串都是 ANSI,并且 Windows 假定您只返回 ANSI 字符串。
当 VB 发布时,大多数安装的 Windows 都无法处理 unicode。
您可以使用 unicode 字符的字节数组而不是字符串直接将这些函数作为 unicode 调用(您仅传递数组中的第一个字节,Windows 认为它是 unicode 字符串)。
如果您打算这样做,您将需要阅读基本的 C 示例(这并不困难),因为这些东西是用这种语言完成的。其他人都使用表单包。
现在对于东亚语言,他们使用 DBCS。它类似于UTF8,但与unicode 无关。 Windows 自动进行转换。
请参阅区域设置中的非 unicode 设置。
这是来自帮助
当您使用专为 SBCS 字符设计的字体时,DBCS 字符可能无法在 DBCS 版本的 Windows 中正确显示。使用英语版 Visual Basic 或任何其他 SBCS 语言版本开发支持 DBCS 的应用程序时,需要更改 Font 对象的 Name 属性。 Name 属性确定用于在控件、运行时绘图或打印操作期间显示文本的字体。此属性的默认设置是 Visual Basic 英文版中的 MS Sans Serif。要在 DBCS 环境中正确显示文本,必须将设置更改为适合运行应用程序的 DBCS 环境的字体。您可能还需要通过更改 Font 对象的 Size 属性来更改字体大小。通常,应用程序中的文本在大多数东亚平台上以 9 号字体显示效果最佳,而在欧洲平台上通常使用 8 号字体。
这些注意事项也适用于使用应用程序打印 DBCS 字符。
VB6 is an ANSI application externally. It is unicode internally and in COM. However anything to do with API calls, directly or indirectly, uses ANSI.
When you create a window (such as a form) you or VB use CreateWindowsExA if you are an ANSI program and CreateWindowsW if unicode. If you use the ANSI version then everything is ANSI. All strings sent to the Window by Windows are ANSI and Windows assumes you are only going to give it ANSI strings back.
When VB was released most installed Windows couldn't do unicode.
You can call these functions as unicode direct with a byte array of unicode characters instead of strings (you pass the first byte in the array only and windows thinks it's a unicode string).
If you intend doing this you'll need to read basic C samples (it's not difficult), as that the language this stuff is done in. Everyone else uses a forms package.
Now for east asian languages, they use DBCS. It's like UTF8 but unrelated to unicode. Windows does conversions automatically.
See non unicode settings in Regional Settings.
This is from Help
When you use a font designed only for SBCS characters, DBCS characters may not be displayed correctly in the DBCS version of Windows. You need to change the Font object's Name property when developing a DBCS-enabled application with the English version of Visual Basic or any other SBCS-language version. The Name property determines the font used to display text in a control, in a run-time drawing, or during a print operation. The default setting for this property is MS Sans Serif in the English version of Visual Basic. To display text correctly in a DBCS environment, you have to change the setting to an appropriate font for the DBCS environment where your application will run. You may also need to change the font size by changing the Size property of the Font object. Usually, the text in your application will be displayed best in a 9-point font on most East Asian platforms, whereas an 8-point font is typical on European platforms.
These considerations apply to printing DBCS characters with your application as well.
使用的字体取决于 Windows 的版本,并且应该能够处理 Windows 配置的任何语言。
The font used depends on the version of Windows, and should be able to handle any language Windows is configured for.
VB6 窗体和控件使用 PC 上当前的 Windows 代码页。您没有提及当前的 Windows 代码页是否支持您要使用的语言(孟加拉语)
VB6 forms and controls use the current Windows code page on the PC. You don't mention whether the current Windows code page supports the language you want to use (Bangla)
您可以通过使用资源文件来完成您想要的任务。 看看这里以帮助您入门。
我不久前使用阿拉伯语做到了这一点 - 我使用了资源偏移量(例如英语为 1000,阿拉伯语为 2000)。然后,您可以加载所需的字符串,例如:
您只需要确保在创建资源文件时您的计算机使用正确的区域设置 - 希望这能让您走上正确的轨道
You can accomplish what you want by using a resource file. Have a look here to get you started.
I did this some time ago using Arabic- I used a resource offset (1000 for English and 2000 for Arabic for example). You can then load which ever string you require for example:
You just need to make sure that when you create your resource file your machine is using the correct locale - hope that gets you started down the right track