Home > Visual Basic > Membuat menu cantik dengan VBSmart Menu XP

Membuat menu cantik dengan VBSmart Menu XP

January 12, 2010

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 :

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 :

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 :

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🙂

  1. Handoko
    March 26, 2010 at 8:57 am

    Kalo bikin floating menu gimna caranya? Tolong balas di email y

  2. March 26, 2010 at 10:31 am

    Handoko :

    Kalo bikin floating menu gimna caranya? Tolong balas di email y

    Option Explicit
    
    Private Sub addPopMenu()
        With SmartMenuXP1.MenuItems
            .Add 0, "mnuPopMenu", , "PopMenu"
            .Add "mnuPopMenu", "mnuCut", , "Cu&t"
            .Add "mnuPopMenu", "mnuCopy", , "&Copy"
            .Add "mnuPopMenu", , smiSeparator
            .Add "mnuPopMenu", "mnuPaste", , "&Paste"
        End With
    End Sub
    
    Private Sub Form_Load()
        Call addPopMenu
        SmartMenuXP1.Visible = False
    End Sub
    
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        'pop up menu tampil pada saat klik kanan di form
        If Button = vbRightButton Then
            With SmartMenuXP1
                X = .ClientToScreenX(Me.hWnd, X)
                Y = .ClientToScreenY(Me.hWnd, Y)
                
                .PopupMenu .MenuItems.Key2ID("mnuPopMenu"), X, Y, 0
            End With
        End If
    End Sub
    

    Selamat mencoba🙂

  3. Anggha
    March 27, 2010 at 8:57 am

    Kenapa saat saya compile project vb saya selalu error…
    Apa vb smart menu crash dengan manifest ???

    Tolong pencerahannya… Klo bisa lewat email..🙂

  4. March 27, 2010 at 9:25 am

    Anggha :

    Kenapa saat saya compile project vb saya selalu error…
    Apa vb smart menu crash dengan manifest ???

    Tolong pencerahannya… Klo bisa lewat email.. :-)

    🙂🙂🙂
    Kok pada minta lewat email sih, yg jelas bukan karna konflik antara vb smart menu dengan manifest.
    Salah satu penyebabnya bisa saja masih ada error di kode program, jadi sebelum compile coba tekan dulu CTRL+F5, klo ada error perbaiki dulu baru compile lagi.

    selamat mencoba🙂

  5. rose
    April 26, 2010 at 9:20 am

    g bisa didunlud mas,
    “Link file yang Anda minta tidak berlaku. “

  6. April 26, 2010 at 9:33 am

    rose :

    g bisa didunlud mas,
    “Link file yang Anda minta tidak berlaku. “

    Oke mba thank infonya, linknya sudah aktif lagi

  7. Athallah
    June 3, 2010 at 3:56 am

    Salam kenal,
    knp kl sy pake smartmenuxp, menu sering hang/hilang saat form ditutup..padahal sy sempat senang karena tampilannya yg ok & menunya flexible (bs d create saat runtime).

    Thx

  8. June 3, 2010 at 4:11 am

    Gitu ya? setau sy, selama saya menggunakan smartmenuxp berjalan stabil klo di windows xp kecuali di vista/win 7 memang bermasalah.

    Atau anda coba langsung menjalankan sample program dari saya, apa seperti itu juga (sering hang/menunya hilang) klo normal ada kemungkinan program anda yang bermasalah.

  9. emodicted
    August 9, 2010 at 8:04 am

    wahh… makasih banget nich infonya… saya izin unduh yaa…
    saya akan kasih respon setelah saya mencobanya…

    • August 9, 2010 at 11:17 am

      Oke om sama2x🙂

  10. emodicted
    August 10, 2010 at 12:28 pm

    wahh keren gan.. tapi saya mendapat kesulitan saat membuat syntax kondisi

    Private Sub SmartMenuXP1_Click(ByVal ID As Long)
    With SmartMenuXP1.MenuItems
    Select Case .Key(ID)
    Case “mnuLogOut”: …..?<——
    End Select
    End With
    end sub

    jika menu logout di klik maka menu yang lain enable menjai false
    maaf jika penjabaranya kurang jelas..

    mohon bantuanya….

    • August 10, 2010 at 2:04 pm

      Gampang kok om, cukup seperti ini :

      Private Sub SmartMenuXP1_Click(ByVal ID As Long)
          Dim i           As Integer
          Dim ignoreMenu  As String
          
          With SmartMenuXP1.MenuItems
              Select Case .Key(ID)
                  Case "mnuLogOut"
                      ignoreMenu = "mnuFile,mnuExit"
                      For i = 0 To SmartMenuXP1.MenuItems.Count - 1
                          If Not InStr(1, ignoreMenu, SmartMenuXP1.MenuItems.Key(i)) > 0 Then
                              SmartMenuXP1.MenuItems.Enabled(i) = False
                          End If
                      Next i
              End Select
          End With
      End Sub
      

      Selamat mencoba🙂

  11. emodicted
    August 11, 2010 at 8:23 am

    thanks atas infonya…, sangat membantu sekali untuk newbie seperti saya…

  12. yuli
    September 23, 2010 at 8:13 am

    numpang nyedot om… makasih ya, manyaaaap

    • September 24, 2010 at 12:47 am

      yuph sama2x

  13. tohirin
    December 20, 2010 at 2:44 am

    wah mantap bos thanks infonya…
    o ya btw tau gak caranya biar bisa running di win7 and vista???

    • December 20, 2010 at 2:50 am

      Sy belum coba om, tapi coba aja set properties SmoothMenuBar dan SmoothPictureArea menjadi False.

      Selamat mencoba🙂

    • Andris
      June 1, 2011 at 5:13 pm

      Coba lihat link ini… saya dah coba dan berhasil.
      pandazen.wordpress.com/2009/11/11/vbsmart-menu-xp-in-windows-vista

      • June 6, 2011 at 8:38 am

        Wah sy kirain berhasil menghandle lewat coding😀

  14. April 11, 2011 at 11:50 am

    wah, menarik ne, tapi untuk apakah ini ? haha bingung

    • April 12, 2011 at 2:04 am

      Iya om disini desktop area😀

  15. Santoso
    January 30, 2013 at 1:56 pm

    salam kenal gan…
    gan ada kontrol yg bisa buat menu seperti office 2007 gak?
    trims…😀

    • February 2, 2013 at 10:07 am

      Coba kesini om.

  1. April 16, 2014 at 9:12 am
Comments are closed.
%d bloggers like this: