• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 菜單控制

    發表于:2007-05-25來源:作者:點擊數: 標簽:圖標增加聲明菜單控制
    在菜單上增加圖標 聲明: DeclareFunctionGetMenuLibuser32?(ByValhwndAsLong)AsLong DeclareFunctionGetSubMenuLibuser32?(ByValhMenuAsLong,ByValnPosAsLong)AsLong DeclareFunctionGetMenuItemIDLibuser32?(ByValhMenuAsLong,ByValnPosAsLong)AsLong Decl
    在菜單上增加圖標 

        聲明:

    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

    clearcase/" target="_blank" >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&


        使用: 在 Form1 中增加一個 PictureBox1, AutoSize 為 True, 放一個小 Bmp (不是 Icon!推薦 13*13)。

    Private Sub Command1_Click()

     

    'Get the menuhandle of your app

    hMenu& = GetMenu(Form1.hwnd)

     

    'Get the handle of the first submenu (Hello)

    hSubMenu& = GetSubMenu(hMenu&, 0)

     

    'Get the menuId of the first entry (Bitmap)

    hID& = GetMenuItemID(hSubMenu&, 0)

     

    'Add the bitmap

    SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture

    'You can add two bitmaps to a menuentry

    'One for the checked and one for the unchecked

    'state.

     

    End Sub


     
    菜單項的動態裝入 

        菜單項的動態裝入是指菜單項的個數不固定. 例子就是文件菜單中最近打開的文件的列表。在第一次打開文件之前,該列表是空的,并且不在文件菜單中出現;打開一個文件后,該列表不再是空的,并且文件菜單中出現代表被打開文件的菜單項。

        具體的實現過程如下:

        在文件菜單里增加一個菜單項,標題任意,并假設菜單項的Name屬性是opened_files_ list;

        更改菜單項opened_files_list的可見屬性,使 opened_files_list.Visible=False

        更改菜單項opened_files_list的下標屬性,使 opened_files_list.Index=0

        在程序中控制菜單項opened_files_list的動態裝入。

        假設要顯示打開過的第二個文件的文件名,并且該文件名存放在一個文件名數組opened _file_name里。以下的代碼就實現了這一功能:

     

    Load opened_files_list(1)

    opened_files_list(1).Caption="&2"+opened_file_name(1)

    opened_files_list(1).Visible=True

     

        需要注意的是,對于下標為0的菜單項,不能用Load方法。因為在程序執行時,該菜單項就 已經被裝入到內存里了;另外,在菜單項的標題屬性字符里的"&"字符具有特殊的含義,它的作 用是在顯示該屬性字符串的同時,并不顯示"&"本身,而緊跟"&"的字符在顯示時具有下劃線, 并且該字符成為熱鍵。

        如果下標不為0的菜單項不再需要,為了減少對內存資源的占用,可以用Unload方法把它 從內存卸出;同樣地,不能用Unload卸出下標為0的菜單項。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>