Funzione UpdateLayeredWindow (winuser.h)
Aggiorna posizione, dimensioni, forma, contenuto e traslucidità di una finestra a livelli.
Sintassi
BOOL UpdateLayeredWindow(
[in] HWND hWnd,
[in, optional] HDC hdcDst,
[in, optional] POINT *pptDst,
[in, optional] SIZE *psize,
[in, optional] HDC hdcSrc,
[in, optional] POINT *pptSrc,
[in] COLORREF crKey,
[in, optional] BLENDFUNCTION *pblend,
[in] DWORD dwFlags
);
Parametri
[in] hWnd
Tipo: HWND
Handle in una finestra a livelli. Viene creata una finestra a livelli specificando WS_EX_LAYERED durante la creazione della finestra con la funzione CreateWindowEx .
Windows 8: lo stile di WS_EX_LAYERED è supportato per le finestre di primo livello e le finestre figlio. Le versioni precedenti di Windows supportano WS_EX_LAYERED solo per le finestre di primo livello.
[in, optional] hdcDst
Tipo: HDC
Handle a un controller di dominio per la schermata. Questo handle viene ottenuto specificando NULL quando si chiama la funzione GetDC . Viene usato per la corrispondenza dei colori della tavolozza quando il contenuto della finestra viene aggiornato. Se hdcDst è NULL, verrà usata la tavolozza predefinita.
Se hdcSrc è NULL, hdcDst deve essere NULL.
[in, optional] pptDst
Tipo: POINT*
Puntatore a una struttura che specifica la nuova posizione dello schermo della finestra a livelli. Se la posizione corrente non cambia, pptDst può essere NULL.
[in, optional] psize
Tipo: SIZE*
Puntatore a una struttura che specifica le nuove dimensioni della finestra a livelli. Se le dimensioni della finestra non cambiano, psize può essere NULL. Se hdcSrc è NULL, psize deve essere NULL.
[in, optional] hdcSrc
Tipo: HDC
Handle a un controller di dominio per la superficie che definisce la finestra a livelli. Questo handle può essere ottenuto chiamando la funzione CreateCompatibleDC . Se la forma e il contesto visivo della finestra non cambiano, hdcSrc può essere NULL.
[in, optional] pptSrc
Tipo: POINT*
Puntatore a una struttura che specifica la posizione del livello nel contesto del dispositivo. Se hdcSrc è NULL, pptSrc deve essere NULL.
[in] crKey
Tipo: COLORREF
Struttura che specifica la chiave di colore da usare durante la composizione della finestra a livelli. Per generare un COLORREF, usare la macro RGB .
[in, optional] pblend
Tipo: BLENDFUNCTION*
Puntatore a una struttura che specifica il valore di trasparenza da usare durante la composizione della finestra a livelli.
[in] dwFlags
Tipo: DWORD
Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Usare pblend come funzione blend. Se la modalità di visualizzazione è 256 colori o meno, l'effetto di questo valore è uguale all'effetto di ULW_OPAQUE. |
|
Usare crKey come colore di trasparenza. |
|
Disegna una finestra a livelli opaca. |
|
Forzare la funzione UpdateLayeredWindowIndirect a non riuscire se le dimensioni correnti della finestra non corrispondono alle dimensioni specificate nella psize. |
Se hdcSrc è NULL, dwFlags deve essere zero.
Valore restituito
Tipo: BOOL
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Il controller di dominio di origine deve contenere la superficie che definisce il contenuto visibile della finestra a livelli. Ad esempio, è possibile selezionare una bitmap in un contesto di dispositivo ottenuto chiamando la funzione CreateCompatibleDC .
Un'applicazione deve chiamare SetLayout nel contesto del dispositivo hdcSrc per impostare correttamente la modalità di mirroring. SetLayout esegue correttamente il mirroring di tutti i disegni in un HDC mantenendo correttamente l'ordine di direzione del testo e (facoltativamente) bitmap. Non può modificare il disegno direttamente nei bit di una bitmap indipendente dal dispositivo (DIB). Per altre informazioni, vedere Layout finestra e mirroring.
La funzione UpdateLayeredWindow mantiene l'aspetto della finestra sullo schermo. Le finestre sotto una finestra a livelli non devono essere ricompigliate quando vengono rilevate a causa di una chiamata a UpdateLayeredWindow, perché il sistema li ricompiglia automaticamente. Ciò consente un'animazione senza problemi della finestra a livelli.
UpdateLayeredWindow aggiorna sempre l'intera finestra. Per aggiornare la parte di una finestra, usare la WM_PAINT tradizionale e impostare il valore di blend usando SetLayeredWindowAttributes.
Per ottenere prestazioni di disegno ottimali dalla finestra a livelli e da qualsiasi finestra sottostante, la finestra a livelli deve essere il più piccola possibile. Un'applicazione deve anche elaborare il messaggio e ricrearne le finestre a livelli quando la profondità del colore della visualizzazione cambia.
Per altre informazioni, vedere Windows a livelli.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Set di API | ext-ms-win-ntuser-window-l1-1-1 (introdotto in Windows 8.1) |
Vedi anche
Informazioni concettuali
Altre risorse
Riferimento