Coding4ever’s Blog

Just coding… coding… and coding… because coding should be fun :)

Membuat Menu Cantik Dengan VBSmart Menu XP

| Comments

VBSmartMenu XP merupakan salah satu komponen tambahan di VB untuk membuat menu bergaya menu Ms Office 200x yang tentunya fitur ini tidak dimiliki oleh Menu Editor yang merupakan fasilitas standar di VB untuk membuat menu, oke mari kita lihat cuplikan menu yang dihasilkan oleh komponen VBSmartMenu XP.

Gimana ? Cantik bukan ? :)

Komponen VBSmartMenu XP terdiri dari 2 file yaitu SmartMenuXP.dll dan SmartMenuXP.ocx yang tentunya untuk menggunakan komponen ini Anda harus melakukan registrasi manual ke dua komponen tersebut.

Sudah enggak sabaran melihat kodenya berikut cuplikannya :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Option Explicit

Private Function getIcon(ByVal iconName As String) As StdPicture
    Set getIcon = LoadPicture(App.Path + "\Icons\" + iconName + ".ico")
End Function

Private Sub addMenuXP()
    With SmartMenuXP1.MenuItems
        .Add 0, "mnuFile", , "&File"
        .Add "mnuFile", "mnuNew", , "&New", getIcon("new")
        .Add "mnuFile", "mnuOpen", , "&Open", getIcon("open")
        .Add "mnuFile", "mnuClose", , "&Close", getIcon("close")
        .Add "mnuFile", , smiSeparator
        .Add "mnuFile", "mnuSave", , "&Save", getIcon("save")
        .Add "mnuFile", "mnuSaveAs", , "Save &As..."
        .Add "mnuFile", , smiSeparator
        .Add "mnuFile", "mnuPrintPreview", , "Print Pre&view", getIcon("preview")
        .Add "mnuFile", "mnuPrint", , "&Print", getIcon("print")
        .Add "mnuFile", , smiSeparator

        .Add "mnuFile", "mnuSendTo", , "Sen&d To"
        .Add "mnuSendTo", "mnuMailRecipient", , "&Mail Recipient", getIcon("mail")
        .Add "mnuSendTo", "mnuMailRecipientReview", , "Mail Re&cipient (for Review)"
        .Add "mnuSendTo", "mnuOnlineMeetingParticipant", , "&Online Meeting Participant"
        .Add "mnuSendTo", "mnuFaxRecipient", , "&Fax Recipient...", getIcon("fax")
        .Add "mnuSendTo", , smiSeparator
        .Add "mnuSendTo", "mnuMicrosoftPowerPoint", , "Microsoft &PowerPoint", getIcon("powerpoint")

        .Add "mnuFile", , smiSeparator
        .Add "mnuFile", "mnuExit", , "&Exit"

        'TODO : DEFINISIKAN MENU YANG LAIN DISINI

    End With
End Sub

Kemudian kita cukup memanggil prosedur addMenuXP di event Form_Load form utama :

1
2
3
Private Sub Form_Load()
    Call addMenuXP
End Sub

Dan bagaimana cara menghandle user mengklik menu yang mana ? kita tinggal memasang kode di event SmartMenuXP_Click :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub SmartMenuXP1_Click(ByVal ID As Long)
    With SmartMenuXP1.MenuItems
        Select Case .Key(ID)
            Case "mnuNew": 'TODO : something here
            Case "mnuOpen":
            Case "mnuClose":
            Case "mnuSave":
            Case "mnuSaveAs":
            Case "mnuPrintPreview":
            Case "mnuPrint":
            Case "mnuMailRecipient":
            Case "mnuMailRecipientReview":
            Case "mnuOnlineMeetingParticipant":
            Case "mnuFaxRecipient":
            Case "mnuMicrosoftPowerPoint":
            Case "mnuExit": End
        End Select
    End With
End Sub

Source code berikut komponen VBSmartMenuXP bisa didownload disini, dan jangan lupa sebelum membuka sample program jalankan terlebih dahulu file install.cmd yang ada di sub folder dll&ocx.

Selamat mencoba :)

visual basic

Tentang Penulis

Software developer yang fokus mengembangkan aplikasi di atas platform .NET (Desktop, ASP.NET MVC, Web Service, Microservice) dan Android. Senang mempelajari teknologi baru terutama di bidang OOP, Design Pattern, ORM, Database, Continuous Integration & Deployment dan arsitektur Microservice.
Selain mengajar, saat ini penulis juga bekerja sebagai staf IT di salah satu PTS di Yogyakarta sebagai senior software developer. Di waktu luang insya Alloh akan terus berbagi pengalaman di blog ini :)

« Meningkatkan daya tarik ListView Apakah objek PictureBox Anda bisa seperti ini ? »

Comments