pesan WM_NCHITTEST
Dikirim ke jendela untuk menentukan bagian jendela apa yang sesuai dengan koordinat layar tertentu. Ini dapat terjadi, misalnya, ketika kursor bergerak, ketika tombol mouse ditekan atau dirilis, atau sebagai respons terhadap panggilan ke fungsi seperti WindowFromPoint. Jika mouse tidak ditangkap, pesan dikirim ke jendela di bawah kursor. Jika tidak, pesan dikirim ke jendela yang telah mengambil mouse.
Jendela menerima pesan ini melalui fungsi WindowProc-nya.
#define WM_NCHITTEST 0x0084
Parameter
-
wParam
-
Parameter ini tidak digunakan.
-
lParam
-
Kata berurutan rendah menentukan koordinat x kursor. Koordinat relatif terhadap sudut kiri atas layar.
Kata urutan tinggi menentukan koordinat y kursor. Koordinat relatif terhadap sudut kiri atas layar.
Nilai hasil
Nilai pengembalian fungsi DefWindowProc adalah salah satu nilai berikut, menunjukkan posisi hot spot kursor.
Mengembalikan kode/nilai | Deskripsi |
---|---|
|
Di batas jendela yang tidak memiliki batas ukuran. |
|
Di batas horizontal bawah jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara vertikal). |
|
Di sudut kiri bawah batas jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara diagonal). |
|
Di sudut kanan bawah batas jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara diagonal). |
|
Di bilah judul. |
|
Di area klien. |
|
Di tombol Tutup. |
|
Pada latar belakang layar atau pada garis pembagian antara jendela (sama dengan HTNOWHERE, kecuali bahwa fungsi DefWindowProc menghasilkan bip sistem untuk menunjukkan kesalahan). |
|
Dalam kotak ukuran (sama dengan HTSIZE). |
|
Di tombol Bantuan. |
|
Di bilah gulir horizontal. |
|
Di batas kiri jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara horizontal). |
|
Di menu. |
|
Di tombol Maksimalkan. |
|
Di tombol Minimalkan. |
|
Pada latar belakang layar atau pada garis pembagian antara jendela. |
|
Di tombol Minimalkan. |
|
Di batas kanan jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara horizontal). |
|
Dalam kotak ukuran (sama dengan HTGROWBOX). |
|
Di menu jendela atau di tombol Tutup di jendela anak. |
|
Di batas horizontal atas jendela. |
|
Di sudut kiri atas batas jendela. |
|
Di sudut kanan atas batas jendela. |
|
Di jendela yang saat ini dicakup oleh jendela lain dalam utas yang sama (pesan akan dikirim ke jendela yang mendasar dalam utas yang sama sampai salah satunya mengembalikan kode yang bukan HTTRANSPARENT). |
|
Di bilah gulir vertikal. |
|
Di tombol Maksimalkan. |
Keterangan
Gunakan kode berikut untuk mendapatkan posisi horizontal dan vertikal:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Seperti disebutkan di atas, koordinat x berada dalam kekurangan nilai pengembalian dalam urutan rendah; koordinat y berada dalam pendek urutan tinggi (keduanya mewakili nilai yang ditandatangani karena dapat mengambil nilai negatif pada sistem dengan beberapa monitor). Jika nilai pengembalian ditetapkan ke variabel, Anda dapat menggunakan makro MAKEPOINTS untuk mendapatkan struktur POINTS dari nilai yang dikembalikan. Anda juga dapat menggunakan makro GET_X_LPARAM atau GET_Y_LPARAM untuk mengekstrak koordinat x atau y.
Penting
Jangan gunakan makro LOWORD atau HIWORD untuk mengekstrak koordinat x- dan y- dari posisi kursor karena makro ini mengembalikan hasil yang salah pada sistem dengan beberapa monitor. Sistem dengan beberapa monitor dapat memiliki koordinat x-dan y- negatif, dan LOWORD dan HIWORD memperlakukan koordinat sebagai jumlah yang tidak ditandatangani.
Windows Vista: Saat membuat bingkai kustom yang menyertakan tombol keterangan standar, pesan ini harus terlebih dahulu diteruskan ke fungsi DwmDefWindowProc . Ini memungkinkan Desktop Window Manager (DWM) untuk menyediakan pengujian hit untuk tombol keterangan. Jika DwmDefWindowProc tidak menangani pesan, pemrosesan lebih lanjut WM_NCHITTEST mungkin diperlukan.
Persyaratan
Persyaratan | Value |
---|---|
Klien minimum yang didukung |
Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Header |
|
Baca juga
-
Referensi
-
Konseptual
-
Sumber Daya Lainnya