WM_NCCALCSIZE

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 
 

Parametri

fCalcValidRects
Il valore di wParam. Se wParam è TRUE, specifica che l'applicazione dovrebbe indicare quale parte dell'area client contiene informazioni valide. Il sistema copia le informazioni valide per l'area specificata all'interno dell'area client nuovo.

Se wParam è FALSE, l'applicazione non è necessario indicare la parte valida dell'area client.

lpncsp
Valore lParam. Se wParam è TRUE, lParam punta a una struttura NCCALCSIZE_PARAMS che contiene informazioni di che un'applicazione può utilizzare per calcolare la nuova dimensione e la posizione del rettangolo 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.

Valori restituiti

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.

Azione predefinita

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).

Descrizione

nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Non supportato.
Intestazione:Dichiarata in winuser.

Vedi anche

Panoramica di Windows, i messaggi di finestra, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index