CopyImage 函式(winuser.h)

建立新影像 (圖示、游標或點陣圖),並將指定影像的屬性複製到新影像。 如有必要,函數會拉伸位以符合新影像的所需大小。

語法

HANDLE CopyImage(
  [in] HANDLE h,
  [in] UINT   type,
  [in] int    cx,
  [in] int    cy,
  [in] UINT   flags
);

Parameters

[in] h

類型: 手柄

一個要複製的圖片帳號。

[in] type

類型: UINT

要複製的圖片類型。 此參數可以是下列其中一個值。

價值 Meaning
IMAGE_BITMAP
0
複製點陣圖。
IMAGE_CURSOR
2
複製一個游標。
IMAGE_ICON
1
複製一個圖示。

[in] cx

類型: int

影像的期望寬度(以像素為單位)。 若為零,則回傳影像的寬度將與原始 hImage 相同。

[in] cy

類型: int

影像的期望高度(以像素為單位)。 若為零,則回傳影像的高度將與原始 hImage 相同。

[in] flags

類型: UINT

此參數可以是下列其中一或多個值。

價值 Meaning
LR_COPYDELETEORG
0x00000008
建立副本後會刪除原始圖片。
LR_COPYFROMRESOURCE
0x00004000
嘗試從原始資源檔案重新載入圖示或游標資源,而非僅複製當前映像檔。 當資源檔案包含多種資源大小時,這對於建立不同大小的副本非常有用。 若無此旗標, CopyImage 會將原始影像拉伸至新大小。 若設定此標誌, CopyImage 會使用資源檔案中最接近所需大小的大小。 只有當 hImage 由 LoadIcon 或 LoadCursor,或是 LoadImage 以 LR_SHARED 標誌載入時,才會成功。
LR_COPYRETURNORG
0x00000004
若 hImage 符合複製標準(即尺寸與色深正確),則會回傳原始 hImage ,此時忽略 LR_COPYDELETEORG 標誌。 若未指定此旗標,則總會建立新物件。
LR_CREATEDIBSECTION
0x00002000
若設定此值並建立新點陣圖,該位圖會被建立為 DIB 區段。 否則,點陣圖影像會以裝置相關的位圖形式建立。 此旗標僅在 uType 為 IMAGE_BITMAP 時有效。
LR_DEFAULTCOLOR
0x00000000
使用預設的彩色格式。
LR_DEFAULTSIZE
0x00000040
若 cx 或 cy 值設為零,則使用系統指標中游標或圖示的寬度或高度。 若未指定此旗標且 cx 與 cy 設為零,函式則使用實際資源大小。 如果資源包含多張影像,函式會使用第一張影像的大小。
LR_MONOCHROME
0x00000001
建立一張新的單色影像。

返回值

類型: 手柄

若函式成功,回傳值即為新建立影像的 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 引入)

另請參閱

概念

載入映像

參考資料

資源