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
HTBORDER
18
Di batas jendela yang tidak memiliki batas ukuran.
HTBOTTOM
15
Di batas horizontal bawah jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara vertikal).
HTBOTTOMLEFT
16
Di sudut kiri bawah batas jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara diagonal).
HTBOTTOMRIGHT
17
Di sudut kanan bawah batas jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara diagonal).
HTCAPTION
2
Di bilah judul.
HTCLIENT
1
Di area klien.
HTCLOSE
20
Di tombol Tutup.
HTERROR
-2
Pada latar belakang layar atau pada garis pembagian antara jendela (sama dengan HTNOWHERE, kecuali bahwa fungsi DefWindowProc menghasilkan bip sistem untuk menunjukkan kesalahan).
HTGROWBOX
4
Dalam kotak ukuran (sama dengan HTSIZE).
HTHELP
21
Di tombol Bantuan.
HTHSCROLL
6
Di bilah gulir horizontal.
HTLEFT
10
Di batas kiri jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara horizontal).
HTMENU
5
Di menu.
HTMAXBUTTON
9
Di tombol Maksimalkan.
HTMINBUTTON
8
Di tombol Minimalkan.
HTNOWHERE
0
Pada latar belakang layar atau pada garis pembagian antara jendela.
HTREDUCE
8
Di tombol Minimalkan.
HTRIGHT
11
Di batas kanan jendela yang dapat diubah ukurannya (pengguna dapat mengklik mouse untuk mengubah ukuran jendela secara horizontal).
HTSIZE
4
Dalam kotak ukuran (sama dengan HTGROWBOX).
HTSYSMENU
3
Di menu jendela atau di tombol Tutup di jendela anak.
HTTOP
12
Di batas horizontal atas jendela.
HTTOPLEFT
13
Di sudut kiri atas batas jendela.
HTTOPRIGHT
14
Di sudut kanan atas batas jendela.
HTTRANSPARENT
-1
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).
HTVSCROLL
7
Di bilah gulir vertikal.
HTZOOM
9
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
Winuser.h (termasuk Windowsx.h)

Baca juga

Referensi

DefWindowProc

GET_X_LPARAM

GET_Y_LPARAM

Konseptual

Mouse Input

Sumber Daya Lainnya

MAKEPOINTS

POIN