messaggio WM_NCCALCSIZE
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 cambiano le dimensioni o la posizione della finestra.
Una finestra riceve questo messaggio tramite la relativa funzione WindowProc .
#define WM_NCCALCSIZE 0x0083
Parametri
-
wParam
-
Se wParam è TRUE, specifica che l'applicazione deve indicare quale parte dell'area client contiene informazioni valide. Il sistema copia le informazioni valide nell'area specificata all'interno della nuova area client.
Se wParam è FALSE, l'applicazione non deve indicare la parte valida dell'area client.
-
lParam
-
Se wParam è TRUE, lParam punta a una struttura NCCALCSIZE_PARAMS che contiene informazioni che un'applicazione può usare per calcolare le nuove dimensioni e la posizione del rettangolo client.
Se wParam è FALSE, lParam punta a una struttura RECT . Nella voce la struttura contiene il rettangolo di finestra proposto per la finestra. All'uscita, la struttura deve contenere le coordinate dello schermo dell'area client della finestra corrispondente.
Valore restituito
Tipo: LRESULT
Se il parametro wParam è FALSE, l'applicazione deve restituire zero.
Se wParam è TRUE, l'applicazione deve restituire zero o una combinazione dei valori seguenti.
Se wParam è TRUE e un'applicazione restituisce zero, l'area client precedente viene mantenuta e allineata all'angolo superiore sinistro della nuova area client.
Codice/valore restituito | Descrizione |
---|---|
|
Specifica che l'area client della finestra deve essere mantenuta e allineata alla parte superiore della nuova posizione della finestra. Ad esempio, per allineare l'area client all'angolo superiore sinistro, restituire i valori WVR_ALIGNTOP e WVR_ALIGNLEFT . |
|
Specifica che l'area client della finestra deve essere mantenuta e allineata al lato destro della nuova posizione della finestra. Ad esempio, per allineare l'area client all'angolo inferiore destro, restituire i valori WVR_ALIGNRIGHT e WVR_ALIGNBOTTOM. |
|
Specifica che l'area client della finestra deve essere mantenuta e allineata al lato sinistro della nuova posizione della finestra. Ad esempio, per allineare l'area client all'angolo inferiore sinistro, restituire i valori WVR_ALIGNLEFT e WVR_ALIGNBOTTOM . |
|
Specifica che l'area client della finestra deve essere mantenuta e allineata alla parte inferiore della nuova posizione della finestra. Ad esempio, per allineare l'area client all'angolo superiore sinistro, restituire i valori WVR_ALIGNTOP e WVR_ALIGNLEFT . |
|
Utilizzato in combinazione con qualsiasi altro valore, ad eccezione di WVR_VALIDRECTS, fa sì che la finestra venga completamente ridisegnata se la dimensione del rettangolo client cambia orizzontalmente. Questo valore è simile allo stile della classe CS_HREDRAW |
|
Usato in combinazione con qualsiasi altro valore, ad eccezione di WVR_VALIDRECTS, fa sì che la finestra venga completamente ridisegnata se la dimensione del rettangolo client cambia verticalmente. Questo valore è simile allo stile della classe CS_VREDRAW |
|
Questo valore determina il ridisegno dell'intera finestra. È una combinazione di valori WVR_HREDRAW e WVR_VREDRAW . |
|
Questo valore indica che, al ritorno da WM_NCCALCSIZE, i rettangoli specificati dai membri rgrc[1] e rgrc[2] della struttura NCCALCSIZE_PARAMS contengono rispettivamente rettangoli di destinazione e di origine validi. Il sistema combina questi rettangoli per calcolare l'area della finestra da conservare. Il sistema copia qualsiasi parte dell'immagine della finestra all'interno del rettangolo di origine e ritaglia l'immagine nel rettangolo di destinazione. Entrambi i rettangoli si trovano in coordinate padre-relative o relative allo schermo. Questo flag non può essere combinato con altri flag. Questo valore restituito consente a un'applicazione di implementare strategie di conservazione dell'area client più elaborate, ad esempio il centro o il mantenimento di un subset dell'area client. |
Commenti
La finestra può essere ridisegnata, a seconda che venga specificato lo stile della classe CS_HREDRAW o CS_VREDRAW. Si tratta dell'elaborazione predefinita compatibile con le versioni precedenti di questo messaggio tramite la funzione DefWindowProc (oltre al normale calcolo del rettangolo client descritto nella tabella precedente).
Quando wParam è TRUE, la semplice restituzione di 0 senza elaborare i rettangoli NCCALCSIZE_PARAMS causerà il ridimensionamento dell'area client alle dimensioni della finestra, incluso il frame della finestra. Verrà rimossa la cornice della finestra e didascalia elementi dalla finestra, lasciando visualizzata solo l'area client.
A partire da Windows Vista, la rimozione del frame standard semplicemente restituendo 0 quando wParam è TRUE non influisce sui fotogrammi estesi nell'area client usando la funzione DwmExtendFrameIntoClientArea . Verrà rimosso solo il frame standard.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|
Vedi anche
-
Riferimento
-
Informazioni concettuali
-
Altre risorse