UpdateLayeredWindow-Funktion (winuser.h)
Aktualisiert die Position, Größe, Form, Inhalte und Lichtdurchlässigkeit eines überlappenden Fensters.
Syntax
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
);
Parameter
[in] hWnd
Typ: HWND
Ein Handle für ein mehrstufiges Fenster. Ein mehrstufiges Fenster wird erstellt, indem beim Erstellen des Fensters mit der CreateWindowEx-Funktion WS_EX_LAYERED angegeben wird.
Windows 8: Der WS_EX_LAYERED-Stil wird für Fenster der obersten Ebene und untergeordnete Fenster unterstützt. Frühere Windows-Versionen unterstützen WS_EX_LAYERED nur für Fenster der obersten Ebene.
[in, optional] hdcDst
Typ: HDC
Ein Handle für einen DC für den Bildschirm. Dieses Handle wird abgerufen, indem null angegeben wird, wenn die GetDC-Funktion aufgerufen wird. Es wird für den Farbabgleich der Palette verwendet, wenn der Fensterinhalt aktualisiert wird. Wenn hdcDstNULL ist, wird die Standardpalette verwendet.
Wenn hdcSrcNULL ist, muss hdcDstNULL sein.
[in, optional] pptDst
Typ: POINT*
Ein Zeiger auf eine Struktur, die die neue Bildschirmposition des mehrstufigen Fensters angibt. Wenn sich die aktuelle Position nicht ändert, kann pptDstNULL sein.
[in, optional] psize
Typ: SIZE*
Ein Zeiger auf eine Struktur, die die neue Größe des mehrstufigen Fensters angibt. Wenn sich die Größe des Fensters nicht ändert, kann psizeNULL sein. Wenn hdcSrcNULL ist, muss psizeNULL sein.
[in, optional] hdcSrc
Typ: HDC
Ein Handle zu einem DC für die Oberfläche, die das mehrschichtige Fenster definiert. Dieses Handle kann durch Aufrufen der CreateCompatibleDC-Funktion abgerufen werden. Wenn sich die Form und der visuelle Kontext des Fensters nicht ändern, kann hdcSrcNULL sein.
[in, optional] pptSrc
Typ: POINT*
Ein Zeiger auf eine Struktur, die die Position der Ebene im Gerätekontext angibt. Wenn hdcSrcNULL ist, sollte pptSrcNULL sein.
[in] crKey
Typ: COLORREF
Eine -Struktur, die den Farbschlüssel angibt, der beim Verfassen des mehrstufigen Fensters verwendet werden soll. Verwenden Sie zum Generieren einer COLORREF das RGB-Makro .
[in, optional] pblend
Typ: BLENDFUNCTION*
Ein Zeiger auf eine -Struktur, der den Transparenzwert angibt, der beim Verfassen des mehrstufigen Fensters verwendet werden soll.
[in] dwFlags
Art: DWORD
Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Verwenden Sie Pblend als Blendfunktion. Wenn der Anzeigemodus 256 Farben oder weniger beträgt, ist die Auswirkung dieses Werts identisch mit der Auswirkung von ULW_OPAQUE. |
|
Verwenden Sie crKey als Transparenzfarbe. |
|
Zeichnen Sie ein undurchsichtiges mehrschichtiges Fenster. |
|
Erzwingen, dass die UpdateLayeredWindowIndirect-Funktion fehlschlägt, wenn die aktuelle Fenstergröße nicht mit der in psize angegebenen Größe übereinstimmt. |
Wenn hdcSrcNULL ist, sollte dwFlags null sein.
Rückgabewert
Typ: BOOL
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Der Quell-DC sollte die Oberfläche enthalten, die den sichtbaren Inhalt des mehrstufigen Fensters definiert. Beispielsweise können Sie eine Bitmap in einem Gerätekontext auswählen, der durch Aufrufen der CreateCompatibleDC-Funktion abgerufen wird.
Eine Anwendung sollte SetLayout im hdcSrc-Gerätekontext aufrufen, um den Spiegelungsmodus ordnungsgemäß festzulegen. SetLayout Spiegel alle Zeichnungen ordnungsgemäß in einem HDC, während die Textglyphe und die Bitmaprichtungsreihenfolge (optional) ordnungsgemäß beibehalten werden. Die Zeichnung kann nicht direkt in die Bits einer geräteunabhängigen Bitmap (DEVICE-Independent Bitmap, DIB) geändert werden. Weitere Informationen finden Sie unter Fensterlayout und Spiegelung.
Die UpdateLayeredWindow-Funktion behält die Darstellung des Fensters auf dem Bildschirm bei. Die Fenster unter einem mehrschichtigen Fenster müssen nicht neu gezeichnet werden, wenn sie aufgrund eines Aufrufs von UpdateLayeredWindow aufgedeckt werden, da das System sie automatisch neu zeichnet. Dies ermöglicht eine nahtlose Animation des mehrschichtigen Fensters.
UpdateLayeredWindow aktualisiert immer das gesamte Fenster. Verwenden Sie zum Aktualisieren eines Teils eines Fensters die herkömmliche WM_PAINT , und legen Sie den Mischwert mithilfe von SetLayeredWindowAttributes fest.
Um eine optimale Zeichnungsleistung durch das mehrschichtige Fenster und alle zugrunde liegenden Fenster zu erzielen, sollte das mehrschichtige Fenster so klein wie möglich sein. Eine Anwendung sollte auch die Meldung verarbeiten und die mehrstufigen Fenster neu erstellen, wenn sich die Farbtiefe der Anzeige ändert.
Weitere Informationen finden Sie unter Mehrschichtige Fenster.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (windows.h einschließen) |
Bibliothek | User32.lib |
DLL | User32.dll |
APIs | ext-ms-win-ntuser-window-l1-1-1 (eingeführt in Windows 8.1) |
Weitere Informationen
Konzept
Andere Ressourcen
Referenz