简单:把:
                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))
调试通过

解决方案 »

  1.   

    简单:把:
                    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))
    调试通过
      

  2.   

    在Class中            '* draw item
                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
      

  3.   

    你用的是SmartXPMenu控件吧?如果是的话,请看以下内容:
    (以下内容收集而来,希望会对你有所帮助^_^)
    由于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
      

  4.   

    to:xxffm() 你是使用第一种方法还是第二种?第一种就是解决之道!
      

  5.   

    我用的是第一种,办法,就是:简单:把:
                    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))
    调试通过
    可是结果字体显示的有点小,而且和原来并没有太多的变化,,真的,,还有麻烦高手能够给予解答,,,,,,,,,, 
      

  6.   

    自己编个自画菜单程序比较好我编的自画菜单:http://go6.163.com/910grtd/vb/wdzp/DrawMenu-S.htm(有注释!特地为想学自画菜单的人写的)
    http://go6.163.com/910grtd/vb/wdzp/CoolGUI.htm(效果比较好,但没有注释)
      

  7.   

    怎么样把这个 smartMenuXp.ocx 中的条目的字体做的大一点呢??
      

  8.   

    还有利用 :
    修改TextOut .hdc, Xcur, Ycur + YBuffer, MenuItems(index).Text, LenB(StrConv(MenuItems(index).Text, vbFromUnicode))的确是可以显示中文了,,但是效果很不好,,还不如不要,,能否有更好的方法显示较好效果的中文,,将 控件的大小作的大一点!!高手门给点帮助,,,谢谢谢谢!
      

  9.   

    先修改
    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。