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 所識別的裝置內容中。 如果 hbrFlickerFreeDrawNULL,系統會將圖示或游標直接繪製到裝置內容中。
[in] diFlags
類型:UINT
繪圖旗標。 此參數可以是下列其中一個值。
傳回值
類型:BOOL
如果函式成功,則傳回值為非零值。
如果函式失敗,傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
言論
DrawIconEx 函式會將圖示的左上角放在 xLeft 指定的位置,並 yTop 參數。 位置受限於裝置內容的目前對應模式。
如果只設定其中一個 DI_IMAGE 和 DI_MASK 旗標,則會使用 SRCCOPY點陣作業程式代碼來繪製對應的點陣圖,。
如果同時設定 DI_IMAGE 和 DI_MASK 旗標:
- 如果圖示或游標是 32 位 Alpha 混合圖示或游標,則會使用 AC_SRC_OVERblend 函式繪製影像, 並忽略遮罩。
- 針對所有其他圖示或游標,遮罩會以 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 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | winuser.h (包括 Windows.h) |
連結庫 | User32.lib |
DLL | User32.dll |
API 集 | ext-ms-win-ntuser-gui-l1-1-0 (在 Windows 8 中引進) |
另請參閱
概念
參考