Sabtu, 29 Oktober 2011

Membatasi Gerakan Kursor Mouse Hanya Seluas Tampilan Form

Pernahkah Anda ingin membatasi gerakan kursor mouse hanya seluas tampilan form saja? Berikut ini solusinya.



buat 2 command dalam form dan tambakan 1 modul

Code::

'Deskripsi: Membatasi gerakan kursor mouse hanya seluas tampilan form.

' Biasanya Anda sering menemukan seperti ini di warnet yang sudah
' dilengkapi dengan program/aplikasi billing on-line. Ketika Anda
' disconnect, maka Anda tidak dapat lagi menggerakkan mouse Anda
' keluar dari batas program billing tersebut.
' Untuk membuat seperti tampilan tersebut, Anda tinggal melengkapi
' dengan menambahkan fungsi mematikan Ctrl-Alt-Del saja...!
'Pembuat : Masino Sinaga (admin@masinosinaga.com)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Module, dan 2 Commandbutton.
' 2. Copy-kan coding berikut ke dalam editor Module/Form ybt.
'-------------------------------------------------------------------------------

' code untuk modul
--------------------
Public Type RECT
left As Integer
top As Integer
right As Integer
bottom As Integer
End Type

Public Type POINT
x As Long
y As Long
End Type

Declare Sub ClipCursor Lib "user32" (lpRect As Any)
Declare Sub GetClientRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT)
Declare Sub ClientToScreen Lib "user32" (ByVal hWnd As Long, lpPoint As POINT)
Declare Sub OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long)

----------------------------------------------------------------


Private Sub Form_Load()
Command1.Caption = "Limit Cursor Movement"
Command2.Caption = "Release Limit"
End Sub

Private Sub Command1_Click() 'Membatasi gerak kursor mouse Anda...
Dim client As RECT
Dim upperleft As POINT
GetClientRect Me.hWnd, client
upperleft.x = client.left
upperleft.y = client.top
ClientToScreen Me.hWnd, upperleft
OffsetRect client, upperleft.x, upperleft.y
ClipCursor client
End Sub
--------------------------------------------------------------------

Private Sub Command2_Click() 'Membebaskan gerak kursor kembali...
ClipCursor ByVal 0&
End Sub

Private Sub Form_Unload(Cancel As Integer) 'Jangan lupa yang ini!
'Jika Anda tidak menempatkan coding berikut ini di dalam event
'Form_Unload, kursor tetap tidak akan bebas dari batas form
'sebelumnya. Jadi, berhati-hatilah!
ClipCursor ByVal 0&
End Sub

0 comments: