Pages

Kamis, 18 Juni 2009

Membatasi Gerakan Mouse PadaForm

'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.
'-------------------------------------------------------------------------------

'--- Coding ini di Module...
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)
'--- Akhir coding di Module...

'--- Coding ini di Form...
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
'--- Coding ini di Form...

0 comments: