プラットフォーム SDK
LoadImage
アイコン、カーソル、アニメーションカーソル、またはビットマップをロードします。
HANDLE LoadImage(
HINSTANCE hinst, // インスタンスのハンドル
LPCTSTR lpszName, // イメージの名前または識別子
UINT uType, // イメージのタイプ
int cxDesired, // 希望する幅
int cyDesired, // 希望する高さ
UINT fuLoad // ロードのオプション
);
パラメータ
- hinst
- [入力]ロードするイメージが入ったモジュールのインスタンスのハンドルを指定します。OEM イメージをロードするときは、0 を指定します。
- lpszName
- [入力]ロードするイメージを指定します。hinst パラメータが NULL 以外で、かつ、fuLoad パラメータが LR_LOADFROMFILE の値を含んでいないときは、hinst モジュール内のイメージリソースとして認識されます。イメージリソースを名前でロードするときは、その名前が入った NULL で終わる文字列へのポインタを指定します。イメージリソースを序数でロードするときは、MAKEINTRESOURCE マクロを使ってイメージの序数をこの関数に渡すことができる形式に変換し、このパラメータに指定します。
hinst パラメータが NULL で、かつ、fuLoad パラメータが LR_LOADFROMFILE の値を含んでいないときは、ロード対象の OEM イメージとして認識されます。OEM イメージの識別子は Winuser.h で定義され、次のプリフィックスが付いています。
| プリフィックス | 意味 |
| OBM_ | OEM ビットマップ |
| OIC_ | OEM アイコン |
| OCR_ | OEM カーソル |
これらの定数を LoadImage 関数に渡すときは、MAKEINTRESOURCE マクロを使います。たとえば、OCR_NORMAL カーソルをロードするときは、lpszName パラメータとして MAKEINTRESOURCE(OCR_NORMAL) を渡し、hinst パラメータとして NULL を渡します。
fuLoad パラメータに LR_LOADFROMFILE の値が含まれていると、lpszName は、イメージが入っているファイルの名前と認識されます。
- uType
- [入力]ロードするイメージのタイプを指定します。次のいずれかの値を指定します。
| 値 | 意味 |
| IMAGE_BITMAP | ビットマップをロードします。 |
| IMAGE_CURSOR | カーソルをロードします。 |
| IMAGE_ICON | アイコンをロードします。 |
- cxDesired
- [入力]アイコンまたはカーソルの幅をピクセル単位で指定します。このパラメータに 0 を指定し、fuLoad パラメータに LR_DEFAULTSIZE を指定すると、システムメトリック値の SM_CXICON または SM_CXCURSOR を使って幅が設定されます。このパラメータに 0 を指定し、fuLoad パラメータで LR_DEFAULTSIZE を指定しないと、リソースの実際の幅が使われます。
- cyDesired
- [入力]アイコンまたはカーソルの高さをピクセル単位で指定します。このパラメータに 0 を指定し、fuLoad パラメータに LR_DEFAULTSIZE を指定すると、システムメトリック値の SM_CYICON または SM_CYCURSOR を使って高さが設定されます。このパラメータに 0 を指定し、fuLoad パラメータに LR_DEFAULTSIZE を指定しないと、リソースの実際の高さが使われます。
- fuLoad
- [入力]次の 1 つ以上の値を指定します。
| 値 | 意味 |
| LR_DEFAULTCOLOR | 既定のフラグです。何をしません。「LR_MONOCHROME ではない」ということを意味するだけです。 |
| LR_CREATEDIBSECTION | uType パラメータに IMAGE_BITMAP を指定すると、互換性のあるビットマップではなく DIB セクションビットマップが返ります。このフラグは、ビットマップを表示デバイスの色にマップすることなくロードする場合に便利です。 |
| LR_DEFAULTSIZE | cxDesired または cyDesired を 0 に設定すると、カーソルまたはアイコンのシステムメトリック値によって指定される幅または高さが使われます。このフラグを指定せず、cxDesired と cyDesired を 0 に設定すると、リソースの実際のサイズが使われます。リソースに複数のイメージが含まれている場合は、最初のイメージのサイズが使われます。 |
| LR_LOADFROMFILE | lpszName パラメータで指定するファイルからイメージをロードします。このフラグを指定しないと、lpszName はりソースの名前として認識されます。 |
| LR_LOADMAP3DCOLORS | イメージのカラーテーブルを検索し、次に示す灰色の濃淡を対応する 3D カラーに置き換えます。 |
| | 色 | 置き換え後の 3D カラー |
| | ダークグレー、
RGB(128,128,128) | COLOR_3DSHADOW |
| | グレー、
RGB(192,192,192) | COLOR_3DFACE |
| | ライトグレー、
RGB(223,223,223) | COLOR_3DLIGHT |
| | 8bpp より濃い色のビットマップをロードする場合は、このオプションを使わないでください。 |
| LR_LOADTRANSPARENT | イメージ内の最初のピクセルのカラー値を取得し、カラーテーブル内の対応するエントリを既定のウィンドウカラー (COLOR_WINDOW)に置き換えます。そのエントリを使うイメージ内のすべてのピクセルが既定のウィンドウカラーになります。この値は対応するカラーテーブルを持つイメージだけに適用されます。
8bpp より濃い色のビットマップをロードする場合は、このオプションを使わないでください。
fuLoad に LR_LOADTRANSPARENT と LR_LOADMAP3DCOLORS の両方を指定した場合は、LRLOADTRANSPARENT が優先されます。しかし、カラーテーブルエントリは、COLOR_WINDOW でなく、COLOR_3DFACE に置き換えられます。
|
| LR_MONOCHROME | イメージをモノクロでロードします。 |
| LR_SHARED | イメージを 2 回以上ロードする場合に、同じハンドルを使います。LR_SHARED を設定しない場合、LoadImage を呼び出して同じリソースをもう一度ロードすると、最初とは異なるハンドルが返ります。
このフラグを使った場合、不要になったりソースはシステムによって破棄されます。
標準的でないサイズのイメージ、ロード後に変化する可能性があるイメージ、ファイルからロードされるイメージには、このオプションを使わないでください。
Windows 95/98:希望したサイズに関係なく、キャッシュ内にある指定したリソース名の最初のイメージがロードされます。
|
| LR_VGACOLOR | VGA フルカラー(True Color)を使います。 |
戻り値
関数が成功すると、ロードされたイメージのハンドルが返ります。
関数が失敗すると、NULL が返ります。拡張エラー情報を取得するには、 関数を使います。
解説
LR_SHARED を指定しないでロードしたビットマップ、カーソル、アイコンを使い終わったときは、次のいずれかの関数を呼び出すことによって、対応するメモリを解放できます。
リソースを使っているプロセスが終了すると、システムがそのリソースを自動的に削除します。しかし、対応する関数を呼び出してメモリを解放すれば、メモリが節約され、プロセスのワーキングセットのサイズも小さくなります。
対応情報
Windows 95/2000:Windows NT 4.0 以降
Windows 95/98:Windows NT 95 以降
ヘッダーファイル:Winuser.h で宣言、Windows.h をインクルード
ライブラリ:User32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装
参照
CopyImage, , , LoadCursor, LoadIcon