Il messaggio WM_NCCALCSIZE viene inviato quando necessario calcolare le dimensioni e la posizione dell'area client di una finestra. Elaborando questo messaggio, un'applicazione può controllare il contenuto dell'area client della finestra quando cambia la dimensione o la posizione della finestra.
WM_NCCALCSIZE fCalcValidRects = wParam (BOOL); / / zona valido bandiera lpncsp = (LPNCCALCSIZE_PARAMS) lParam; / / size calcolo dati o lpncsp = (LPRECT) lParam; / / nuova finestra coordinate
Se wParam è FALSE, l'applicazione non è necessario indicare la parte valida dell'area client.
Se wParam è FALSE, lParam punta a un struttura RECT . All'entrata, la struttura contiene il rettangolo finestra proposti per la finestra. All'uscita, la struttura deve contenere le coordinate dello schermo dell'area client della finestra corrispondente.
Se il parametro fCalcValidRects è FALSE, l'applicazione deve restituire zero.
Se fCalcValidRects è TRUE, l'applicazione deve restituire zero o una combinazione dei seguenti valori:
| Valore | Significato |
|---|---|
| WVR_ALIGNTOP, WVR_ALIGNLEFT, WVR_ALIGNBOTTOM, WVR_ALIGNRIGHT | |
| Questi valori, usati in combinazione, specificano che l'area client della finestra deve essere conservato e allineati in modo appropriato relativo alla nuova posizione della finestra. Ad esempio, per allineare l'area client nell'angolo in basso a sinistra, restituire i valori WVR_ALIGNLEFT e WVR_ALIGNBOTTOM. | |
| WVR_HREDRAW, WVR_VREDRAW | |
| Questi valori, usati in combinazione con altri valori, causano la finestra venga completamente ridisegnato se i cambiamenti del rettangolo client taglia orizzontalmente o verticalmente. Questi valori sono simili agli stili di classe CS_HREDRAW e CS_VREDRAW. | |
| WVR_REDRAW | |
| Questo valore provoca l'intera finestra venga ridisegnato. Essa è una combinazione di valori WVR_HREDRAW e WVR_VREDRAW. | |
| WVR_VALIDRECTS | |
| Questo valore indica che, al ritorno da WM_NCCALCSIZE, i rettangoli specificati dalla rgrc [1] e rgrc [2] i membri della struttura NCCALCSIZE_PARAMS contengono destinazione valida e rettangoli di zona di origine, rispettivamente. Il sistema combina questi rettangoli a calcolare l'area della finestra di essere conservato. Il sistema copia di qualsiasi parte dell'immagine di finestra che è all'interno del rettangolo di origine e ritaglia l'immagine per il rettangolo di destinazione. Entrambi rettangoli sono in coordinate relativo al genitore o un parente di schermo. | |
| Il valore restituito consente all'applicazione di implementare più elaborate strategie di conservazione area client, ad esempio centraggio o preservare un sottoinsieme dell'area client. | |
Se la proprietà fCalcValidRects è impostata su TRUE e un'applicazione restituisce zero, l'area client vecchio è conservato ed è allineato con l'angolo superiore sinistro dell'area client nuovo.
La finestra può ridisegnata, dipende dal fatto che sia specificato lo stile di classe CS_HREDRAW o CS_VREDRAW. Questa è l'impostazione predefinita, compatibilità all'elaborazione di questo messaggio dalla funzione DefWindowProc (oltre ai calcoli rettangolo client abituale descritti nella tabella precedente).
nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Non supportato.
Intestazione:Dichiarata in winuser.
Panoramica di Windows, i messaggi di finestra, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT
Rimedio: Inserire il CD-ROM CD di MSDN Library.