CopyImage 函式 (winuser.h)
建立新的影像 (圖示、游標或點陣圖) ,並將指定影像的屬性複製到新的影像。 如有必要,函式會延展位以符合新影像所需的大小。
語法
HANDLE CopyImage(
[in] HANDLE h,
[in] UINT type,
[in] int cx,
[in] int cy,
[in] UINT flags
);
參數
[in] h
類型: HANDLE
要複製之映像的句柄。
[in] type
類型: UINT
要複製的影像類型。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
複製點陣圖。 |
|
複製數據指標。 |
|
複製圖示。 |
[in] cx
類型: int
影像所需的寬度,以像素為單位。 如果這是零,則傳回的影像寬度會與原始 hImage 相同。
[in] cy
類型: int
影像所需的高度,以像素為單位。 如果這是零,則傳回的影像高度會與原始 hImage 相同。
[in] flags
類型: UINT
此參數可以是下列一或多個值。
值 | 意義 |
---|---|
|
建立複本之後,刪除原始映像。 |
|
嘗試從原始資源檔重載圖示或游標資源,而不只是複製目前的映像。 當資源檔包含多個資源大小時,這適用於建立不同大小的複本。 如果沒有此旗標, CopyImage 會將原始影像延展至新的大小。 如果設定此旗標, CopyImage 會使用最接近所需大小的資源檔大小。 只有當 hImage 已由 LoadIcon 或 LoadCursor 載入,或使用 LR_SHARED 旗標載入 LoadImage 時,才會成功。 |
|
如果符合複本的準則,即正確的維度和色彩深度,則會傳回原始 hImage ,在此情況下會忽略 LR_COPYDELETEORG 旗標。 如果未指定此旗標,一律會建立新的物件。 |
|
如果已設定並建立新的點陣圖,則會將點陣圖建立為 DIB 區段。 否則,會建立位圖影像做為裝置相依點圖。 只有當 uType是IMAGE_BITMAP時,此旗標才有效。 |
|
使用預設色彩格式。 |
|
如果 cxDesired 或 cyDesired 值設定為零,則會使用系統計量值所指定的寬度或高度。 如果未指定此旗標,且 cxDesired 和 cyDesired 設定為零,函式會使用實際的資源大小。 如果資源包含多個影像,函式會使用第一個影像的大小。 |
|
建立新的單色映像。 |
傳回值
類型: HANDLE
如果函式成功,則傳回值是新建立映像的句柄。
如果函式失敗,則傳回值為 NULL。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
當您完成使用資源時,您可以呼叫下表中的其中一個函式來釋放其相關聯的記憶體。
資源 | Release 函式 |
---|---|
點陣圖 | DeleteObject |
資料指標 | DestroyCursor |
圖示 | DestroyIcon |
不過,系統會在進程終止時自動刪除資源,不過呼叫適當的函式會儲存記憶體,並減少進程的工作集大小。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包括 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-gui-l1-3-0 (於 Windows 10 10.0.10240 版) |
另請參閱
概念
參考