• <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-5-25 09:19 | 作者: 未知 | 來源: programfan.com | 查看: 33次 | 進入軟件測試論壇討論

    領測軟件測試網 在菜單上增加圖標 

        聲明:

    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&


        使用: 在 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/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>