• 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
Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 138 time
Liên hệ:

Gắn ảnh cho menu trong VB6

Gửi bàigửi bởi VuVanHoanh » T.Hai 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
Sửa lần cuối bởi VuVanHoanh vào ngày T.Hai 06/06/2011 5:53 pm với 1 lần sửa.


Since 2008...
One love! :x

Koha JeseMen
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Ba 27/07/2010 9:00 pm
Has thanked: 5 time

Re: Gắn ảnh cho menu trong VB6

Gửi bàigửi bởi Koha JeseMen » CN 17/04/2011 1:34 pm

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

Mã: Chọn hết

Dim menu_info As MENUITEMINFO

sorcerevn
Thành viên chính thức
Thành viên chính thức
Bài viết: 12
Ngày tham gia: T.Ba 16/06/2009 10:32 am
Has thanked: 2 time

Re: Gắn ảnh cho menu trong VB6

Gửi bàigửi bởi sorcerevn » T.Năm 26/05/2011 4:36 pm

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

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 138 time
Liên hệ:

Re: Gắn ảnh cho menu trong VB6

Gửi bàigửi bởi VuVanHoanh » T.Hai 06/06/2011 5:56 pm

Đã fix.
Có thêm cả project đi kèm đây.
Tập tin đính kèm
gan anh cho menu.rar
Gắn ảnh cho menu
Vui vẻ nhé!!!
(5.43 KiB) Đã tải 727 lần
Since 2008...
One love! :x


Quay về “[VB] Ứng dụng - Form và Control”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách