PEMROGRAMAN API [Message]
Messages
o Adalah
cara dari Windows memberitahu program anda bahwa terjadi sesuatu inputan dan
anda harus memprosesnya
o Messages
dari form anda dikirimkan ketika user mengeklik button, menggerakkan mouse
keatasnya, ataupun mengetikkan sesuatu.
o Semua
Messages dikirimkan dengan empat buah parameter, yaitu
o Window
handle à
adalah handle dari window dari message
o message
identifier à
adalah tipe dari input (klik, mouse, dll)
o Dua
buah 32-bit (Long) values. à
adalah informasi tambahan dari message. Misalnya koordinat mouse
o Ketika
message dikirimkan kepada user, mungkin user tidak akan melihatnya.
o Sebab
message ditangkap oleh VB
o Dibaca,
kemudian disampaikan kepada user dalam bentuk informasi yang penting-penting
saja
o Dan
dalam bentuk yang lebih baik
o Misal:
ketika user menggerakkan mouse melewati sebuah form, maka Windows mengirim
WM_MOUSEMOVE kepada window tersebut,
o VB
mengambil message tadi dan parameternya, kemudian mengeksekusi kode yang berada
dalam event Button_MouseMove
o Dalam
prosesnya, VB mengubah nilai 32-bit kedua dari message (berisi koordinat x dan
y dalam pixel, masing-masing 16-bit) menjadi dua type twips.
o Sekarang,
misalnya anda membutuhkan koordinat pixel dari mouse. Padahal VB sudah
mengkonversinya menjadi twips. Mau tidak mau anda harus mengubahnya kembali
menjadi bentuk pixels.
o Hal
yang aneh, sebab windows memberikan apa yang anda butuhkan (pixel) namun VB
mengubah “seenaknya” menjadi bentuk lain (twips)
o Pertanyaanya
adalah à
bisakah saya menghindari hal ini?.
o Jawabnya
adalah à
SubClassing.
o Namun
jangan dilakukan bila tidak benar-benar penting, sebab menyusahkan dan juga
melanggar konsep “safe programming” di VB
o Anda
bisa mengirimkan pesan kepada window milik diri anda sendiri dengan menggunakan
fungsi SendMessage or PostMessage
o Akan
langsung menyebabkan window memproses message secepatnya
o Sedangkan
akan dimasukkan terlebih dahulu ke dalam message queue sesudah message lainnya
sudah terproses
o Anda
harus menyebutkan window handle yang akan anda kirimi message (message
identifier)
o Bisa
dilihat di VB API text Viewer
Some Windows Specifics
o Windows
mengenali semua form, control, menu, menu item, atau apapun dengan melalui handle
o Ketika
aplikasi dijalankan, setiap control didalamnya terdapat handle yang
kemudian digunakan untuk memisahkan button dari control-control selainnya
o Bila
ingin melakukan semua operasi dalam button melalui API, anda harus menggunakan handle
ini
o Darimana
mendapatkannya? VB telah menyediakan property Hwnd untuk semua control yang
mempunyai handle dalam windows
o Windows
berjalan dengan sistem pixel bukan sistem twips.
o Rumus
pengkonversi dari twips ke pixels. dan sebaliknya.
o Menggunakan
variabel TwipsPerPixelX dan TwipsPerPixelY:
pixXValue
= twipXValue \ Screen.TwipsPerPixelX
pixYValue = twipYValue \ Screen.TwipsPerPixelY
pixYValue = twipYValue \ Screen.TwipsPerPixelY
twipXValue
= pixXValue * Screen.TwipsPerPixelX
twipYValue = pixYValue * Screen.TwipsPerPixelY
twipYValue = pixYValue * Screen.TwipsPerPixelY
o Windows
menggunakan sistem koordinat yang berbeda dalam function. Hati-hati
o Syntax
error pada bagian API call mungkin menyebabkan VB menjadi crash.
Hati-hati!
o VB
tidak bisa mendebug API, bila program anda berjalan aneh ataupun crash,
ceklah bagian pemanggilan API pada kode anda. Misalnya kurang sintax à ByVal. Salah
parameter, ataupun yang lainnya
Where to get the funs descriptions from
o Untuk
mendapatkan penjelasan dari function-function API, gunakan SDK help file
ataupun Microsoft SDK documentation
o Beberapa
dokumentasi disertakan langsung dalam bundel. Misalnya di Borland Delphi 3.0
atuapun MS Visual C++.
o
Carilah di Internet
No comments:
Post a Comment
silahkan membaca dan berkomentar