Windowsプログラムの開発におけるLoadImage関数の引数と使い方

LoadImage関数は、Windows APIの1つで、画像リソースを読み込むために使用されます。

LoadImage関数のパラメータとその使い方は以下の通りです:

  1. hInst(HINSTANCE型):画像リソースを含むモジュールのハンドルを指定します。通常、GetModuleHandle(NULL)を使用して、現在のアプリケーションのハンドルを取得します。
  2. lpszName(LPCTSTRの種類):画像リソースの名前を指定します。整数リソースID(例:MAKEINTRESOURCE(IDB_BITMAP1))またはリソース名が含まれる文字列へのポインタである必要があります。
  3. uType(UINT型):画像リソースのタイプを指定します。以下の値のいずれかである必要があります:
  4. IMAGE_BITMAP: .bmpファイルを読み込むためのもの。
  5. アイコン(.ico)ファイルを読み込むために使用されるIMAGE_ICON。
  6. 画像カーソル:.curファイルを読み込むために使用される。
  7. cxDesired(int型):読み込んだ画像の幅を指定します。0の場合、元の画像サイズを読み込みます。
  8. cyDesired(整数型):読み込み後の画像の高さを指定します。0の場合、元の画像サイズが読み込まれます。
  9. fuLoad(UINT型):使用される画像のロード方法を指定します。次のいずれかの値を取ることができます:
  10. デフォルトカラーを使用します。
  11. LR_LOADFROMFILE: lpszNameパラメーターには、リソース名ではなくファイルパスを指定します。
  12. LR_LOADTRANSPARENTは、透明な画像を読み込みます。
  13. 画像を共有できるように指定されたロードができます。
  14. LR_CREATEDIBSECTIONは、デバイス非依存型ビットマップ(DIB)セクションを作成します。
  15. 成功した場合は有効なハンドルが返され、失敗した場合はNULLが返されます。

LoadImage関数を呼び出した後、返されたハンドルを使用して、デバイス上に描画したり、コントロールのイメージとして設定したりすることができます。

以下はサンプルコードです:

HINSTANCE hInst = GetModuleHandle(NULL);
HBITMAP hBitmap = (HBITMAP)LoadImage(hInst, MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
if (hBitmap != NULL)
{
    // 在设备上绘制图像
    HDC hdc = GetDC(hwnd);
    HDC hdcMem = CreateCompatibleDC(hdc);
    SelectObject(hdcMem, hBitmap);
    BitBlt(hdc, 0, 0, cx, cy, hdcMem, 0, 0, SRCCOPY);
    
    // 释放资源
    DeleteDC(hdcMem);
    ReleaseDC(hwnd, hdc);
    DeleteObject(hBitmap);
}

上記の例のコードでは、IDB_BITMAP1というビットマップリソースをロードし、それをhwndハンドルに対応するウィンドウデバイス上に描画します。描画が完了した後は、関連するリソースを解放する必要があります。これには、デバイスコンテキスト(hdcMemおよびhdc)、およびビットマップオブジェクト(hBitmap)が含まれます。

bannerAds