新しいイメージ (アイコン、カーソル、またはビットマップ) を作成し、指定したイメージの属性を新しいイメージにコピーします。 必要に応じて、関数は新しいイメージの目的のサイズに合わせてビットを拡張します。
構文
HANDLE CopyImage(
[in] HANDLE h,
[in] UINT type,
[in] int cx,
[in] int cy,
[in] UINT flags
);
Parameters
[in] h
型: HANDLE
コピーするイメージへのハンドル。
[in] type
型: UINT
コピーするイメージの種類。 このパラメーターには、次のいずれかの値を指定できます。
| 価値 | 説明 |
|---|---|
|
ビットマップをコピーします。 |
|
カーソルをコピーします。 |
|
アイコンをコピーします。 |
[in] cx
型: int
イメージの目的の幅 (ピクセル単位)。 この値が 0 の場合、返されるイメージの幅は元の hImage と同じになります。
[in] cy
型: int
イメージの目的の高さ (ピクセル単位)。 これが 0 の場合、返されるイメージの高さは元の hImage と同じになります。
[in] flags
型: UINT
このパラメーターには、次の値のいずれかを指定できます。
| 価値 | 説明 |
|---|---|
|
コピーの作成後に元のイメージを削除します。 |
|
単に現在のイメージをコピーするのではなく、元のリソース ファイルからアイコンまたはカーソル リソースを再読み込みしようとします。 これは、リソース ファイルに複数のサイズのリソースが含まれている場合に、異なるサイズのコピーを作成する場合に便利です。 このフラグがない場合、 CopyImage は元のイメージを新しいサイズに拡大します。 このフラグが設定されている場合、 CopyImage は目的のサイズに最も近いリソース ファイルのサイズを使用します。 これは、 hImage が LoadIcon または LoadCursor、または LR_SHARED フラグを使用して LoadImage によって読 み込まれた場合にのみ成功します。 |
|
コピーの条件 (つまり、正しい寸法と色深度) を満たす場合、元の hImage を返します。この場合、 LR_COPYDELETEORG フラグは無視されます。 このフラグが指定されていない場合は、常に新しいオブジェクトが作成されます。 |
|
これが設定され、新しいビットマップが作成された場合、ビットマップは DIB セクションとして作成されます。 それ以外の場合、ビットマップ イメージはデバイスに依存するビットマップとして作成されます。 このフラグは、 uType が IMAGE_BITMAPされている場合にのみ有効です。 |
|
既定の色形式を使用します。 |
|
cx または cy 値がゼロに設定されている場合は、カーソルまたはアイコンのシステム メトリック値で指定された幅または高さを使用します。 このフラグが指定されておらず、 cx と cy が 0 に設定されている場合、関数は実際のリソース サイズを使用します。 リソースに複数のイメージが含まれている場合、関数は最初のイメージのサイズを使用します。 |
|
新しいモノクロ イメージを作成します。 |
戻り値
型: HANDLE
関数が成功した場合、戻り値は新しく作成されたイメージへのハンドルです。
関数が失敗した場合、戻り値は NULL です。 拡張エラー情報を取得するには、GetLastError
注釈
リソースの使用が完了したら、次の表のいずれかの関数を呼び出すことによって、関連付けられているメモリを解放できます。
| 資源 | Release 関数 |
|---|---|
| ビットマップ | DeleteObject |
| カーソル | DestroyCursor |
| Icon | DestroyIcon |
ただし、システムはプロセスの終了時にリソースを自動的に削除しますが、適切な関数を呼び出すとメモリが節約され、プロセスのワーキング セットのサイズが小さくなります。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | 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 で導入) |
こちらも参照ください
概念
リファレンス