• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Gắn ảnh cho menu trong VB6

Các thủ thuật liên quan đến việc xử lý ứng dụng, biểu mẫu và control
User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Gắn ảnh cho menu trong VB6

Postby VuVanHoanh » Mon 07/03/2011 7:28 pm

Thủ thuật: Tạo ảnh cho menu trong VB6
Tác giả: Vũ Văn Hoành - sưu tầm tại vb-helper
Mô tả: Tạo ảnh cho menu trong VB6



  1. Private Type MENUITEMINFO
  2.     cbSize As Long
  3.     fMask As Long
  4.     fType As Long
  5.     fState As Long
  6.     wid As Long
  7.     hSubMenu As Long
  8.     hbmpChecked As Long
  9.     hbmpUnchecked As Long
  10.     dwItemData As Long
  11.     dwTypeData As Long
  12.     cch As Long
  13. End Type
  14. Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
  15. Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
  16. Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bypos As Long, lpcMenuItemInfo As MENUITEMINFO) As Long
  17. Private Const MF_BITMAP = &H4&
  18. Private Const MFT_BITMAP = MF_BITMAP
  19. Private Const MIIM_TYPE = &H10
  20.  
  21. Public Sub SetMenuBitmap(ByVal frm As Form, ByVal _
  22.     item_numbers As Variant, ByVal pic As Picture)
  23. Dim menu_handle As Long
  24. Dim i As Integer
  25. Dim menu_info As MENUITEMINFO
  26.  
  27.     menu_handle = GetMenu(frm.hwnd)
  28.     For i = LBound(item_numbers) To UBound(item_numbers) - 1
  29.         menu_handle = GetSubMenu(menu_handle, _
  30.             item_numbers(i))
  31.     Next i
  32.  
  33.     With menu_info
  34.         .cbSize = Len(menu_info)
  35.         .fMask = MIIM_TYPE
  36.         .fType = MFT_BITMAP
  37.         .dwTypeData = pic
  38.     End With
  39.  
  40.     SetMenuItemInfo menu_handle, _
  41.         item_numbers(UBound(item_numbers)), _
  42.         True, menu_info
  43. End Sub
  44.  
  45. Private Sub Form_MouseDown(Button As Integer, Shift As _
  46.     Integer, X As Single, Y As Single)
  47.     If Button = vbRightButton Then
  48.         mnuPopup.Visible = True
  49.         SetMenuBitmap Me, Array(0, 1, 0), imgStop.Picture
  50.         SetMenuBitmap Me, Array(0, 1, 1), imgYield.Picture
  51.         SetMenuBitmap Me, Array(0, 1, 2), imgCaution.Picture
  52.  
  53.         PopupMenu mnuPopup
  54.  
  55.         mnuPopup.Visible = False
  56.     End If
  57. End Sub
Last edited by VuVanHoanh on Mon 06/06/2011 5:53 pm, edited 1 time in total.


Since 2008...
One love! :x

Koha JeseMen
Thành viên chính thức
Thành viên chính thức
Posts: 24
Joined: Tue 27/07/2010 9:00 pm
Has thanked: 5 times

Re: Gắn ảnh cho menu trong VB6

Postby Koha JeseMen » Sun 17/04/2011 1:34 pm

Lỗi: Compile error: User-defined type not defined
Tại dòng

Code: Select all

Dim menu_info As MENUITEMINFO

sorcerevn
Thành viên chính thức
Thành viên chính thức
Posts: 12
Joined: Tue 16/06/2009 10:32 am
Has thanked: 2 times

Re: Gắn ảnh cho menu trong VB6

Postby sorcerevn » Thu 26/05/2011 4:36 pm

This example uses the SetMenuItemInfo API function to add bitmaps to three menu items.

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: Gắn ảnh cho menu trong VB6

Postby VuVanHoanh » Mon 06/06/2011 5:56 pm

Đã fix.
Có thêm cả project đi kèm đây.
Attachments
gan anh cho menu.rar
Gắn ảnh cho menu
Vui vẻ nhé!!!
(5.43 KiB) Downloaded 776 times
Since 2008...
One love! :x


Return to “[VB] Ứng dụng - Form và Control”

Who is online

Users browsing this forum: No registered users and 1 guest