简单:把:
TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, Len(MenuItems(index).Text)改为: TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, LenB(StrConv(MenuItems(index).Text, vbFromUnicode))
调试通过
TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, Len(MenuItems(index).Text)改为: TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, LenB(StrConv(MenuItems(index).Text, vbFromUnicode))
调试通过
解决方案 »
- 关于上午EXCEL的VBA.AppActivate的代码。
- 【请教各位】在vb中如果要实现成绩汇总的功能,应该怎样建表呢?
- 怎样实现excel的树形编号??? 谢谢了!!!!!!!!!!!!!!!!!!!!
- -----[50分]网络成绩管理系统,我选哪种数据库好呢?-----
- 如何在网页中下载图片
- ************求一小程序。电脑与PC(条码机)之间的通讯,就是数据的导入导出,谢谢
- set conn = new adodb.connection为什么不行
- 谁能解释一下VB中的这个组件
- 关于ADO控件更新数据记录的问题,请各位大侠帮忙解决
- 在SQL语句中使用带'|'的字符串的问题?????!!!!!盼复◎◎谢谢!!
- VB显示shell的输出,程序被挂起怎么办,有一段中间人程序C我在TC2下编译不通过,有没有好的办法
- 我在vb中要加一个刷新图标,不知道哪有?
TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, Len(MenuItems(index).Text)改为: TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, LenB(StrConv(MenuItems(index).Text, vbFromUnicode))
调试通过
If MenuItems(index).bSeperator Then
frmMenu.picMenuBuffer.Line (dim_MarginWidth + 1, Ycur + YBuffer)-(.ScaleWidth - 1, Ycur + YBuffer), clr_LeftMargin
Ycur = Ycur + 1 + (XBuffer * 2)
Else
'修改过的一句
TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, LenB(StrConv(MenuItems(index).Text, vbFromUnicode))
Ycur = Ycur + theTextHeight + (YBuffer * 2)
'''''''''''''''''
End If
(以下内容收集而来,希望会对你有所帮助^_^)
由于SmartXPMenu.ocx中对中文支持不太好,可用加入相应空格的方法解决。自动加入空格的具体办法如下:
Private Function AutoAddSpace(UnicodeChar As String) As String
If LenB(StrConv(UnicodeChar, vbFromUnicode)) = Len(UnicodeChar) Then
AutoAddSpace = UnicodeChar
Else
AutoAddSpace = UnicodeChar & Space(LenB(StrConv(UnicodeChar, vbFromUnicode)) - Len(UnicodeChar))
End IfEnd Function
例如:
Private Sub pBuildMenus()
With SmartMenuXP1.MenuItems
` Root > File...
.Add 0, "keyFile", , AutoAddSpace("(&F)文件")
.Add "keyFile", "keyNew", , AutoAddSpace("&New")
.Add "keyFile", "keyOpen", , "&Open"
.Add "keyFile", "keyClose", , "&Close"
.Add "keyFile", , smiSeparator
.Add "keyFile", , smiPicture, "Add Ne&w Item...", pGetPicture("AddNewItem"), vbCtrlMask + vbShiftMask, vbKeyA
.Add "keyFile", , smiPicture, "Add Existin&g Item...", pGetPicture("AddExistingItem"), vbCtrlMask, vbKeyD
.Add "keyFile", "keyAddProject", , "A&dd Project"
End sub
TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, Len(MenuItems(index).Text)改为: TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, LenB(StrConv(MenuItems(index).Text, vbFromUnicode))
调试通过
可是结果字体显示的有点小,而且和原来并没有太多的变化,,真的,,还有麻烦高手能够给予解答,,,,,,,,,,
http://go6.163.com/910grtd/vb/wdzp/CoolGUI.htm(效果比较好,但没有注释)
修改TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, LenB(StrConv(MenuItems(index).Text, vbFromUnicode))的确是可以显示中文了,,但是效果很不好,,还不如不要,,能否有更好的方法显示较好效果的中文,,将 控件的大小作的大一点!!高手门给点帮助,,,谢谢谢谢!
TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, LenB(StrConv(MenuItems(index).Text, vbFromUnicode))再把
Const fnt_MenuItem As String = "Tahoma" 改为 Const fnt_MenuItem As String = "宋体"。把frmXPMenu中的picMenuBuffer字体改为"宋体",字号改为9。