DrawIconEx 函式 (winuser.h)
將圖示或游標繪製到指定的裝置內容、執行指定的點陣作業,以及依指定延展或壓縮圖示或游標。
語法
BOOL DrawIconEx(
[in] HDC hdc,
[in] int xLeft,
[in] int yTop,
[in] HICON hIcon,
[in] int cxWidth,
[in] int cyWidth,
[in] UINT istepIfAniCur,
[in, optional] HBRUSH hbrFlickerFreeDraw,
[in] UINT diFlags
);
參數
[in] hdc
類型: HDC
將繪製圖示或游標之裝置內容的句柄。
[in] xLeft
類型: int
圖示或游標左上角的邏輯 X 座標。
[in] yTop
類型: int
圖示或游標左上角的邏輯 Y 座標。
[in] hIcon
類型: HICON
要繪製之圖示或游標的句柄。 此參數可以識別動畫數據指標。
[in] cxWidth
類型: int
圖示或游標的邏輯寬度。 如果此參數為零, 且 diFlags 參數 DI_DEFAULTSIZE,則函式會使用 SM_CXICON 系統計量值來設定寬度。 如果此參數為零,且未使用 DI_DEFAULTSIZE ,則函式會使用實際的資源寬度。
[in] cyWidth
類型: int
圖示或游標的邏輯高度。 如果此參數為零且 diFlags 參數 DI_DEFAULTSIZE,則函式會使用 SM_CYICON 系統計量值來設定寬度。 如果此參數為零,且未使用 DI_DEFAULTSIZE ,則函式會使用實際的資源高度。
[in] istepIfAniCur
類型: UINT
如果 hIcon 識別動畫游標,則為要繪製之畫面的索引。 如果 hIcon 未識別動畫游標,則會忽略此參數。
[in, optional] hbrFlickerFreeDraw
類型: HBRUSH
系統用於無閃爍繪圖的筆刷句柄。 如果 hbrFlickerFreeDraw 是有效的筆刷句柄,系統會使用指定的背景色彩筆刷建立螢幕外畫面位圖、將圖示或游標繪製到位圖中,然後將位圖複製到 hdc 所識別的裝置內容中。 如果 hbrFlickerFreeDraw 為 NULL,系統會直接將圖示或游標繪製到裝置內容中。
[in] diFlags
類型: UINT
繪圖旗標。 此參數可以是下列其中一個值。
傳回值
類型: BOOL
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
DrawIconEx 函式會將圖示的左上角放在 xLeft 和 yTop 參數所指定的位置。 位置受限於裝置內容的目前對應模式。
如果只設定其中一個 DI_IMAGE 和 DI_MASK 旗標,則會使用 SRCCOPY點陣作業程式碼繪製對應的位圖。
如果已設定 DI_IMAGE 和 DI_MASK 旗標:
- 如果圖示或游標是 32 位 Alpha 混合圖示或游標,則會使用混合函式AC_SRC_OVER繪製影像,並忽略遮罩。
- 針對所有其他圖示或游標,遮罩會使用SRCAND點陣作業程式碼繪製,並使用SRCINVERT點陣作業程式代碼繪製影像
若要複製 DrawIcon (hDC, X, Y, hIcon)
,請呼叫 DrawIconEx ,如下所示:
DrawIconEx (hDC, X, Y, hIcon, 0, 0, 0, NULL, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包括 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-gui-l1-1-0 (於 Windows 8) |
另請參閱
概念
參考
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應