WM_SIZE messaggio
Inviato a una finestra dopo la modifica delle dimensioni.
Una finestra riceve questo messaggio tramite la relativa funzione WindowProc.
#define WM_SIZE 0x0005
-
wParam
-
Tipo di ridimensionamento richiesto. Questo parametro può avere uno dei valori seguenti.
Valore Significato - SIZE_MAXHIDE
- 4
Il messaggio viene inviato a tutte le finestre popup quando un'altra finestra è ingrandita. - SIZE_MAXIMIZED
- 2
La finestra è stata ingrandita. - SIZE_MAXSHOW
- 3
Il messaggio viene inviato a tutte le finestre popup quando alcune altre finestre sono state ripristinate alle dimensioni precedenti. - SIZE_MINIMIZED
- 1
La finestra è stata ridotta a icona. - SIZE_RESTORED
- 0
La finestra è stata ridimensionata, ma non viene applicato né il valore SIZE_MINIMIZED né SIZE_MAXIMIZED . -
lParam
-
La parola in ordine basso di lParam specifica la nuova larghezza dell'area client.
La parola dell'ordine elevato di lParam specifica la nuova altezza dell'area client.
Tipo: LRESULT
Se un'applicazione elabora questo messaggio, deve restituire zero.
/******************************************************************
* *
* SimpleText::OnResize *
* *
* If the application receives a WM_SIZE message, this method *
* resize the render target appropriately. *
* *
******************************************************************/
void SimpleText::OnResize(UINT width, UINT height)
{
if (pRT_)
{
D2D1_SIZE_U size;
size.width = width;
size.height = height;
pRT_->Resize(size);
}
}
LRESULT CALLBACK SimpleText::WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
SimpleText *pSimpleText = reinterpret_cast<SimpleText *>(
::GetWindowLongPtr(hwnd, GWLP_USERDATA));
if (pSimpleText)
{
switch(message)
{
case WM_SIZE:
{
UINT width = LOWORD(lParam);
UINT height = HIWORD(lParam);
pSimpleText->OnResize(width, height);
}
return 0;
// ...
Esempio di esempi classici di Windows in GitHub.
Se la funzione SetScrollPos o MoveWindow viene chiamata per una finestra figlio come risultato del messaggio WM_SIZE, il parametro bRedraw o bRepaint deve essere diverso da zero per fare in modo che la finestra venga ricreata.
Anche se la larghezza e l'altezza di una finestra sono valori a 32 bit, il parametro lParam contiene solo i 16 bit di ogni finestra.
La funzione DefWindowProc invia i messaggi WM_SIZE e WM_MOVE quando elabora il messaggio di WM_WINDOWPOSCHANGED. I messaggi WM_SIZE e WM_MOVE non vengono inviati se un'applicazione gestisce il messaggio WM_WINDOWPOSCHANGED senza chiamare DefWindowProc.
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|
-
Riferimento
-
Concettuale
-
Altre risorse