• 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

Add icon vào menu đã việt hóa unicode

Các ví dụ nho nhỏ và những thứ linh tinh không thuộc nhóm nào
Hình đại diện của người dùng
vietteiv
Quản trị
Quản trị
Bài viết: 1323
Ngày tham gia: T.Bảy 10/02/2007 12:17 am
Đến từ: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 time
Been thanked: 71 time
Liên hệ:

Add icon vào menu đã việt hóa unicode

Gửi bàigửi bởi vietteiv » T.Sáu 01/05/2009 4:47 pm

Tên chương trình: Menu Icons
Ngôn ngữ lập trình: VB6
Tác giả: Sưu tầm + chỉnh sửa để chạy được + việt hóa unicode
Chức năng: thêm icon vào menu


Như các bạn đã biết VB6 không hỗ trợ add icon vào menu trong cửa sổ design. với mã nguồn control này sẽ giúp các bạn có được 1 cái menu tiếng việt (unicode) + thể hiện được các icon một cách dễ dàng.

hướng dẫn sử dụng:

- tạo menu bình thường, nếu muốn thể hiện tiếng việt unicode thì gõ theo kiểu vni như sau:
ví dụ: cha2o ba5n --> chào bạn
01-05-2009 4-39-34 PM.jpg
01-05-2009 4-39-34 PM.jpg (33.56 KiB) Đã xem 3625 lần

- thêm icon bằng cách add một cái imagelist vào form. thêm các icon mà bạn muốn thể hiện vào. bạn chú ý chỗ từ key: gõ đúng chính xác nội dung cái caption của cái submenu mà bạn muốn có icon bên cạnh.
01-05-2009 4-40-57 PM.jpg

- trong form_load() bạn viết code như sau:

Mã: Chọn hết

  1. Private Sub Form_Load()
  2.     ImagenMenu1.ImageList = ImageList1
  3.     ImagenMenu1.Form = Me
  4.     ImagenMenu1.Init
  5. End Sub

và đây là kết quả:
01-05-2009 4-53-05 PM.jpg
01-05-2009 4-53-05 PM.jpg (22.84 KiB) Đã xem 3619 lần

Xong rồi, chúc các bạn có thêm 1 control làm đẹp cho chương trình của mình :)
Tập tin đính kèm
Menus icon.rar
source code
(21.86 KiB) Đã tải 1795 lần



Hình đại diện của người dùng
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: T.Tư 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 31 time
Liên hệ:

Re: Add icon vào menu đã việt hóa unicode

Gửi bàigửi bởi clarkkent » T.Sáu 19/06/2009 1:06 pm

NoBi đã viết:Làm sao ra lỗi này?. Thử mà không thấy lỗi.

à.a thử click đi click lại vào 'luôn ở trên ' xem
Tập tin đính kèm
Menus-20icon.rar
(22.21 KiB) Đã tải 776 lần
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...

Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 954
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 51 time
Been thanked: 66 time
Liên hệ:

Re: Add icon vào menu đã việt hóa unicode

Gửi bàigửi bởi NoBi » CN 21/06/2009 6:15 pm

Tìm trong hàm Friend Function OnDrawItem(ByRef dsPtr As Long) As Boolean của lớp CoolMenu đoạn:

Mã: Chọn hết

  1. 'if it is checked
  2.   If bChecked Then
  3.     LSet rtHighlight = rtIcon
  4.     rtHighlight.Top = rtHighlight.Top - 2
  5.     rtHighlight.Left = rtHighlight.Left - 2
  6.     rtHighlight.Bottom = rtHighlight.Bottom + 2
  7.     rtHighlight.Right = rtHighlight.Right + 2
  8.     dwColorBG = GetSysColor(IIf(bChecked, COLOR_HIGHLIGHT, COLOR_MENU))
  9.     FillRectEx hdc, rtHighlight, dwColorBG
  10.     hIcon = m_ilHandle.ListImages(iButton).ExtractIcon
  11.     DrawState hdc&, 0&, 0&, hIcon, 0&, rtIcon.Left, rtIcon.Top, rtIcon.Left + m_iBitmapWidth%, rtIcon.Top + m_iBitmapWidth%, DST_ICON Or DSS_NORMAL
  12.   End If

Thay thành đoạn sau:

Mã: Chọn hết

  1. 'if it is checked
  2.   If bChecked Then
  3.     LSet rtHighlight = rtIcon
  4.     rtHighlight.Top = rtHighlight.Top - 2
  5.     rtHighlight.Left = rtHighlight.Left - 2
  6.     rtHighlight.Bottom = rtHighlight.Bottom + 2
  7.     rtHighlight.Right = rtHighlight.Right + 2
  8.     dwColorBG = GetSysColor(IIf(bChecked, COLOR_HIGHLIGHT, COLOR_MENU))
  9.     FillRectEx hdc, rtHighlight, dwColorBG
  10.     If iButton > 0 Then hIcon = m_ilHandle.ListImages(iButton).ExtractIcon
  11.     DrawState hdc&, 0&, 0&, hIcon, 0&, rtIcon.Left, rtIcon.Top, rtIcon.Left + m_iBitmapWidth%, rtIcon.Top + m_iBitmapWidth%, DST_ICON Or DSS_NORMAL
  12.   End If

Tuy nhiên cách này chỉ tạm thời che lỗi trên lại thôi chứ chưa giải quyết được triệt để.
:>


Quay về “[VB] Mã nguồn linh tinh”

Đ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