Menghilangkan Menu Klik Kanan Pada TextBox

Apakah bisa Menghilangkan Menu Klik Kanan Pada TextBox? Dengan menggunakan fungsi api pada vb kita dapat menghilangkan menu pada saat kita melakukan klik kanan pada sebuah text box. Mungkin ini sepele tapi pada saat kita butuh akan di buat pusing karena tidak tahu caranya.

Anda penasaran caranya...? Silahkan ikuti langkah-langkahnya semoga bisa bermanfaat untuk anda. Sebagai contoh saya akan menyiapkan sebuah form yang di dalamnya ada dua buah text box yang  satu di disable kontex menunya atau menu klik kanannya yang satu kita biarkan saja. Berikut tampilan formnya.

Tampilkan Gambar

Kemudian tambahkan sebuah modul dengan cara klik menu Project-Add Modul lalu ketikan koding berikut ini pada madul tersebut

Option Explicit

Public OldWindowProc As Long

Private Declare Function CallWindowProc Lib "user32" Alias _
    "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, _
    ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    
Public Declare Function SetWindowLong Lib "user32" Alias _
    "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long

Public Const GWL_WNDPROC = (-4)
Public Const WM_USER = &H400


' Untuk Mendisable Context Menu
Public Function NoPopupWindowProc(ByVal hWnd As Long, ByVal msg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
    
    Const WM_CONTEXTMENU = &H7B

    If msg <> WM_CONTEXTMENU Then _
        NoPopupWindowProc = CallWindowProc( _
            OldWindowProc, hWnd, msg, wParam, _
            lParam)
End Function

Kemudian ketikan koding berikut ini pada form load, cara nya double klik formnya lalu tulislah kode ini :

Private Sub Form_Load()
    'menonaktifkan kontex menu
    OldWindowProc = SetWindowLong( _
        txtMenuDisabled.hWnd, GWL_WNDPROC, _
        AddressOf NoPopupWindowProc)
End Sub

Kemudian ketikan koding berikut pada form unload

' Mengembailkan ke nilai semula
Private Sub Form_Unload(Cancel As Integer)
    SetWindowLong _
        txtMenuDisabled.hWnd, GWL_WNDPROC, _
        OldWindowProc
End Sub

Jika sudah semua silahkan dijalankan, semoga berhasil dan bermanfaat. Jika anda berhasil maka akan nampak seperti pada gambar animasi berikut ini



Jika ada yang kurang jelas silahkan di tanyakan lewat komentar. Silahkan download source codenya di link berikut ini.





Tags:
Menghilangkan Menu Klik Kanan Pada TextBox,Menghilangkan Kontext Menu,Menghilangkan Kontext Menu Pada TextBox, Trik Kontext Menu,Menu Klik Kanan

No comments:

Post a Comment