UpdateLayeredWindow 函式 (winuser.h)
更新分層視窗的位置、大小、形狀、內容和透明度。
語法
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
);
參數
[in] hWnd
類型: HWND
分層視窗的句柄。 使用 CreateWindowEx 函式建立視窗時,會指定WS_EX_LAYERED來建立分層視窗。
Windows 8:最上層視窗和子窗口支援WS_EX_LAYERED樣式。 舊版 Windows 僅支援最上層視窗 WS_EX_LAYERED 。
[in, optional] hdcDst
類型: HDC
螢幕DC的句柄。 呼叫 GetDC 函式時,會藉由指定 NULL 來取得此句柄。 當視窗內容更新時,它會用於調色盤色彩比對。 如果 hdcDst 是 NULL,則會使用預設調色盤。
如果 hdcSrc 為 NULL,hdcDst 必須是 NULL。
[in, optional] pptDst
類型: POINT*
結構的指標,指定分層視窗的新螢幕位置。 如果目前的位置未變更, pptDst 可以是 NULL。
[in, optional] psize
類型: SIZE*
結構的指標,指定分層視窗的新大小。 如果視窗的大小未變更, psize 可以是 NULL。 如果 hdcSrc 為 NULL,psize 必須是 NULL。
[in, optional] hdcSrc
類型: HDC
定義分層視窗之表面之 DC 的句柄。 呼叫 CreateCompatibleDC 函式即可取得此句柄。 如果視窗的圖形和視覺內容未變更, hdcSrc 可以是 NULL。
[in, optional] pptSrc
類型: POINT*
結構的指標,指定裝置內容中圖層的位置。 如果 hdcSrc 為 NULL, 則 pptSrc 應該是 NULL。
[in] crKey
類型: COLORREF
結構,指定要在撰寫分層視窗時使用的色彩索引鍵。 若要產生 COLORREF,請使用 RGB 宏。
[in, optional] pblend
類型: BLENDFUNCTION*
結構的指標,指定撰寫分層視窗時要使用的透明度值。
[in] dwFlags
類型: DWORD
此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
使用 pblend 作為 blend 函式。 如果顯示模式為 256 個色彩或更少,則這個值的效果與 ULW_OPAQUE的效果相同。 |
|
使用 crKey 做為透明度色彩。 |
|
繪製不透明的分層視窗。 |
|
如果目前的視窗大小不符合 psize 中指定的大小,則強制 UpdateLayeredWindowIndirect 函式失敗。 |
如果 hdcSrc 為 NULL,dwFlags 應為零。
傳回值
類型: BOOL
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
來源 DC 應該包含定義分層視窗可見內容的介面。 例如,您可以呼叫 CreateCompatibleDC 函式,將點圖選取到取得的裝置內容。
應用程式應該在 hdcSrc 裝置內容上呼叫 SetLayout,以正確設定鏡像模式。 SetLayout 會適當地將所有繪圖鏡像到 HDC ,同時適當地保留文字圖像,並選擇性地) 位圖方向順序 (。 它無法直接修改繪圖到與裝置無關的點陣圖 (DIB) 。 如需詳細資訊,請參閱 視窗配置和鏡像。
UpdateLayeredWindow 函式會維護畫面上的窗口外觀。 由於呼叫 UpdateLayeredWindow,因此在分層視窗底下的視窗不需要重新繪製,因為系統會自動重新繪製它們。 這允許分層視窗的順暢動畫。
UpdateLayeredWindow 一律會更新整個視窗。 若要更新視窗的一部分,請使用傳統的 WM_PAINT ,並使用 SetLayeredWindowAttributes 設定混合值。
若要讓分層視窗和任何基礎窗口獲得最佳繪製效能,分層視窗應該盡可能小。 應用程式也應該處理訊息,並在顯示器的色彩深度變更時重新建立其分層視窗。
如需詳細資訊,請參閱 分層式 Windows。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-window-l1-1-1 (在 Windows 8.1) 中引進 |
另請參閱
概念
其他資源
參考