建立新影像 (圖示、游標或點陣圖),並將指定影像的屬性複製到新影像。 如有必要,函數會拉伸位以符合新影像的所需大小。
語法
HANDLE CopyImage(
[in] HANDLE h,
[in] UINT type,
[in] int cx,
[in] int cy,
[in] UINT flags
);
Parameters
[in] h
類型: 手柄
一個要複製的圖片帳號。
[in] type
類型: UINT
要複製的圖片類型。 此參數可以是下列其中一個值。
| 價值 | Meaning |
|---|---|
|
複製點陣圖。 |
|
複製一個游標。 |
|
複製一個圖示。 |
[in] cx
類型: int
影像的期望寬度(以像素為單位)。 若為零,則回傳影像的寬度將與原始 hImage 相同。
[in] cy
類型: int
影像的期望高度(以像素為單位)。 若為零,則回傳影像的高度將與原始 hImage 相同。
[in] flags
類型: UINT
此參數可以是下列其中一或多個值。
| 價值 | Meaning |
|---|---|
|
建立副本後會刪除原始圖片。 |
|
嘗試從原始資源檔案重新載入圖示或游標資源,而非僅複製當前映像檔。 當資源檔案包含多種資源大小時,這對於建立不同大小的副本非常有用。 若無此旗標, CopyImage 會將原始影像拉伸至新大小。 若設定此標誌, CopyImage 會使用資源檔案中最接近所需大小的大小。 只有當 hImage 由 LoadIcon 或 LoadCursor,或是 LoadImage 以 LR_SHARED 標誌載入時,才會成功。 |
|
若 hImage 符合複製標準(即尺寸與色深正確),則會回傳原始 hImage ,此時忽略 LR_COPYDELETEORG 標誌。 若未指定此旗標,則總會建立新物件。 |
|
若設定此值並建立新點陣圖,該位圖會被建立為 DIB 區段。 否則,點陣圖影像會以裝置相關的位圖形式建立。 此旗標僅在 uType 為 IMAGE_BITMAP 時有效。 |
|
使用預設的彩色格式。 |
|
若 cx 或 cy 值設為零,則使用系統指標中游標或圖示的寬度或高度。 若未指定此旗標且 cx 與 cy 設為零,函式則使用實際資源大小。 如果資源包含多張影像,函式會使用第一張影像的大小。 |
|
建立一張新的單色影像。 |
返回值
類型: 手柄
若函式成功,回傳值即為新建立影像的 handle。
如果函式失敗,傳回值為 NULL。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
當你使用完該資源後,可以透過呼叫下表中的函式來釋放其相關的記憶體。
| 資源 | 釋放函數 |
|---|---|
| 點陣圖 | DeleteObject |
| Cursor | 銷毀游標 |
| Icon | 銷毀圖標 |
系統在其程序終止時會自動刪除該資源,但呼叫適當的函式會節省記憶體並減少程序工作集的大小。
要求
| 需求 | 價值 |
|---|---|
| 最低支援的用戶端 | Windows 2000 專業版 [僅限桌面應用程式] |
| 支援的最低伺服器 | Windows 2000 伺服器 [僅限桌面應用程式] |
| 目標平臺 | Windows 作業系統 |
| 標頭 | winuser.h (包括 Windows.h) |
| 範本庫 | User32.lib |
| DLL | User32.dll |
| API 集 | ext-ms-win-ntuser-gui-l1-3-0(於 Windows 10 版本 10.0.10240 引入) |
另請參閱
概念
參考資料