软件注册站
热情软件屋

 
如何在一个菜单里面有小的位图
编号: QA000705    
建立日期: 1999年3月26日 最后修改日期: 1999年7月13日
所属类别: Visual Basic - 窗体与菜单
   
    vc++,vb
    win95
    在vb编程中,如何在一个菜单里面有小的位图?(xj)

CoolMenu控件
支持图标显示,可视化选择图标;Cool条显示;设置快捷键;可选发渐变、光、浮起、沉下等显示效果。
广告

   
    如果只希望实现XP风格的菜单,可以参考XP_Menu_Ex.zip
    另一个办法是利用API来实现。
    下面的这段代码将Picture1的图形作为菜单项。
    首先建立一个模块,并加入下面的语句。
    Declare Function GetMenu Lib "user32" _
     (ByVal hwnd As Long) As Long
    Declare Function GetSubMenu Lib "user32" _
     (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Declare Function GetMenuItemID Lib "user32" _
     (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Declare Function SetMenuItemBitmaps Lib "user32" _
     (ByVal hMenu As Long, ByVal nPosition As Long, _
     ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, _
     ByVal hBitmapChecked As Long) As Long
    
    Public Const MF_BITMAP = &H4&
    
    Type MENUITEMINFO
     cbSize As Long
     fMask As Long
     fType As Long
     fState As Long
     wID As Long
     hSubMenu As Long
     hbmpChecked As Long
     hbmpUnchecked As Long
     dwItemData As Long
     dwTypeData As String
     cch As Long
    End Type
    
    Declare Function GetMenuItemCount Lib "user32" _
     (ByVal hMenu As Long) As Long
    Declare Function GetMenuItemInfo Lib "user32" _
     Alias "GetMenuItemInfoA" (ByVal hMenu As Long, _
     ByVal un As Long, ByVal b As Boolean, _
     lpMenuItemInfo As MENUITEMINFO) As Boolean
    
    Public Const MIIM_ID = &H2
    Public Const MIIM_TYPE = &H10
    Public Const MFT_STRING = &H0&
    将下面的代码加入一个按钮的Click事件:
    Private Sub Command1_Click()
    
    ' 获得你的菜单的句柄
    hMenu& = GetMenu(Form1.hwnd)
    
    ' 获得第一个子菜单的句柄
    hSubMenu& = GetSubMenu(hMenu&, 0)
    
    ' 获得第一个菜单项
    hID& = GetMenuItemID(hSubMenu&, 0)
    
    '加入位图
    
    SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, _
     Picture1.Picture, _
     Picture1.Picture
    End Sub
    

    上面的代码使菜单项为图片,如果你只希望菜单项的左边有一个小位图,而右边仍为文字。可以先在Picture1绘制图片,在利用Picture1.Print加上文字,然后用Picture1.Picture加入菜单项。
    
    另一个办法是购买ActiveBar控件,它可以实现这个功能(参考:http://www2.ccw.com.cn/tips/9907/071202_11.asp)。
    
    相关问题:
    QA003772 "怎样才能在菜单中添加一幅风景画作为背景"
    QA004732 "如何用Vb开发出如XP风格的界面和菜单"

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 窗体与菜单, form, window, tform

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio