Ogni volta che si verifica un evento del mouse, il sistema invia un messaggio WM_NCHITTEST a una finestra che contiene il punto caldo del cursore oppure la finestra che ha catturato il mouse. Il sistema utilizza questo messaggio per determinare se inviare un client area o non client zona del mouse messaggio. Un'applicazione che deve ricevere messaggi di pulsante del mouse e movimento del mouse deve passare il messaggio WM_NCHITTEST alla funzione DefWindowProc.
Il parametro lParam del messaggio WM_NCHITTEST contiene le coordinate dello schermo del punto caldo del cursore. La funzione DefWindowProc esamina le coordinate e restituisce un valore di hit test che identifica la posizione dell'area sensibile. Il valore di hit test può essere uno dei seguenti valori.
Valore | Ubicazione del punto caldo |
---|---|
HTBORDER | Alla frontiera di una finestra che non dispone di un bordo di ridimensionamento |
HTBOTTOM | Nel bordo orizzontale inferiore di una finestra |
HTBOTTOMLEFT | Nell'angolo inferiore sinistro di un bordo di finestra |
HTBOTTOMRIGHT | In basso a destra di un bordo di finestra |
HTCAPTION | Una barra del titolo |
HTCLIENT | In un'area client |
HTCLOSE | Nel pulsante Chiudi. |
HTERROR | Sullo sfondo dello schermo o su una linea di demarcazione tra le finestre (Idem come HTNOWHERE, salvo che la funzione DefWindowProc produce un beep di sistema per indicare un errore) |
HTGROWBOX | In una finestra di dimensioni (analogo a HTSIZE) |
HTHELP | Nel pulsante Guida. |
HTHSCROLL | In una barra di scorrimento orizzontale |
HTLEFT | Nel bordo sinistro di una finestra |
HTMENU | In un menu |
HTMAXBUTTON | Nel pulsante Ingrandisci. |
HTMINBUTTON | Nel pulsante Riduci a icona. |
HTNOWHERE | Sullo sfondo dello schermo o su una linea di demarcazione tra le finestre |
HTREDUCE | In un pulsante Riduci a icona |
HTRIGHT | Nel bordo destro di una finestra |
HTSIZE | In una finestra di dimensioni (analogo a HTGROWBOX) |
HTSYSMENU | In un menu di sistema o in un pulsante Chiudi in una finestra figlio |
HTTOP | Nel bordo superiore orizzontale di una finestra |
HTTOPLEFT | Nell'angolo superiore sinistro di un bordo di finestra |
HTTOPRIGHT | In alto a destra di un bordo di finestra |
HTTRANSPARENT | In una finestra attualmente coperta da un'altra finestra in stesso thread |
HTVSCROLL | Nella barra di scorrimento verticale |
HTZOOM | In un pulsante Ingrandisci |
Se il cursore è nell'area client di una finestra, DefWindowProc restituisce il valore di hit test HTCLIENT routine di finestra. Quando la routine della finestra restituisce questo codice al sistema, il sistema converte le coordinate dello schermo del punto caldo del cursore client e quindi registra il client appropriato messaggio di zona del mouse.
La funzione DefWindowProc restituisce uno dei valori di altre hit test quando il punto caldo del cursore è in area non client di una finestra. Quando la routine della finestra restituisce uno dei valori seguenti hit test, il sistema invia un non client messaggio di zona del mouse, ponendo il valore dell'hit test in parametro wParam del messaggio e le coordinate del cursore nel parametro lParam.
Rimedio: Inserire il CD-ROM CD di MSDN Library.