PDA

View Full Version : Hỏi về menu có load ảnh(icon) kèm theo



NTK
07-10-2002, 13:21
Trong VB tôi biết có thể tạo ra một menu có các biểu tượng ảnh kèm theo như các menu mà Windows tạo ra nhưng tôi lại không biết cách tạo ra nó. Vậy mong mọi người giúp tôi với!

Nicky
07-10-2002, 16:14
Bạn có thể đến www.vbsmart.com để download control !!

White_Rose
08-10-2002, 00:44
Nếu tự làm bạn có thể subclassing để tự tạo một menu cho mình. Đây là bài hưóng dẫn có mã nguồn và hình ảnh minh hoạ mà mình sưu tập được.
http://www.chip81.com/vbasp/vbasp.asp?id=52

NTK
08-10-2002, 07:47
Cảm ơn White_Rose nhiều lắm, mình sẽ thử xem sao!

NTK
08-10-2002, 12:52
Cảm ơn Nicky nhiều lắm vfì Control đó, hi vong sẽ được chỉ giáo nhiều hơn!

NTK
19-10-2002, 17:23
Nicky ơi, Mình đã đến địa chỉ đó và DownLoad control đó về và đã dung thử nhưng sau khi đã có Menu theo ý của mình thì trong chương trình đó lại không thể gõ được tiếng việt. Không biết Nicky và các bạn đã dùng thử nó chưa? và cách khắc phục điều đó như thế nào vậy ?, chỉ giùm mình với


NTK

quaitieutu
20-10-2002, 15:37
Nếu được thì bạn hãy viết code để làm việc này đi thú vị hơn dùng Acticve X nhiều.Chúc thành công

White_Rose
21-10-2002, 04:21
bên ddth.net thì Girl_Next_door bảo là không thể làm được, cần tìm cái smart... khác:)

NTK
21-10-2002, 07:46
Mình sẽ thử xem sao!

NTK
22-10-2002, 10:23
quaitieutu ơi mình đã thử viết một đoạn lệnh để load Icon lên menu nhưng không thành công, quaitieutu bạn có thể nói rõ hơn một chút được không?.



NTK

White_Rose
22-10-2002, 20:37
Như này thì đủ rõ chưa vậy???
http://207.150.221.94/ws-ihatelov/vbasp/vbasp.asp?id=52

quaitieutu
28-10-2002, 12:17
Cách của Quái là dùng hàm Api tên là SetMenuItemBitmaps
Đầu tiên bạn tào một form trên đó có các image mag các bạn add thuộc tính picture cho nó(nhớ add theo kiểu bitmap chứ đừng add dạng Icon nhé).bạn có bao nhiêu Item thì tạo bấy nhiêu cái image
rồi cóp py đoạn code sau dán vô trong cửa sổ code
Dùng hàm API bằng cách sau
Trong màn hình VB bạn chọn add_In -à Add In manager ----VB 6 API viewer để bật chức năng view API lên,
Microsoft sợ ta không nhớ nỗi các khai báo hàm API rườm rà nên đã cung cấp cái Tool này cho ta
Chỉ việc chọn hàm nào cần dùng thì gõ vào ,Ms sẽ khai báo giúp ta,Ta chỉ việc Copy rồi paste vô code của mình.Lợi thật nhỉ
Sau khi tool API viewer được kích hoạt bạn click vào Add In ,sẽ thấy thêm một Item xuất hiện tên là API viewer đó,click vào nó
Nó sẽ hiện ra một cửa sổ,bạn chọn file--àload text file để chọn file Win32API. Đây là file lưu tất cả các file API trong Window để ta có thể dùng trong Vb,OK
Rồi bạn theo tên các hàm trong đoạn code dướI đây gõ vào API viewer để nó khai báo giúp bạn

Option Explicit
Const MF_BYPOSITION = &H400&
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private 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
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Sub Form_Load()
Dim hMenu As Long
Dim i As Long
Dim j As Long
Dim lmenuhnd As Long
Dim lsubmenuhnd As Long
Dim lmenucnt As Long
Dim lsubmenucnt As Long
' lay handle cua form hien hanh
lmenuhnd = GetMenu(Me.hwnd)
'tim so item cua menu
lmenucnt = GetMenuItemCount(lmenuhnd)
'xuly tung en try cua Menu
For i = 0 To lmenucnt - 1
' lay handle cua cac menu con
lsubmenuhnd = GetSubMenu(lmenuhnd, i)
' tim so menucon
lsubmenucnt = GetMenuItemCount(lsubmenuhnd)
' xu ly tung item cua cac menu con
For j = 0 To lsubmenucnt - 1
Call SetMenuItemBitmaps(lsubmenuhnd, 0, MF_BYPOSITION, img1.Picture, 0)
Call SetMenuItemBitmaps(lsubmenuhnd, 1, MF_BYPOSITION, img2.Picture, img2.Picture)
Call SetMenuItemBitmaps(lsubmenuhnd, 2, MF_BYPOSITION, img3.Picture, img2.Picture)
Call SetMenuItemBitmaps(lsubmenuhnd, 3, MF_BYPOSITION, img4.Picture, img2.Picture)



Next j
Next i
End Sub


Quái đã tìm cách chuyển để đổi từ việc dùng image sang imagelist nhưng không chạy theo ý mình thành ra chỉ có cách làm thủ công là add từng image thôi .(có bao nhiêu hình trong menu thì phải add bấy nhiều cái Image nên hơi cực nhỉ)
Đây chỉ là đoạn code thủ công thôi các bạn ạ .mục đích để minh họa là chính ,bạn nào muốn hiển thị Ico lên menu thì sang bên Website của Mr WaiRâu xem bài viết.Nó viết khá đầy đủ và dể hiểu.Coi xong thì Nothing to ….chê
Chúc vui