CImageList::DrawIndirect

更新 : 2007 年 11 月

イメージ リスト内のイメージを描画します。

BOOL DrawIndirect(
   IMAGELISTDRAWPARAMS* pimldp 
);
BOOL DrawIndirect(
   CDC* pDC,
   int nImage,
   POINT pt,
   SIZE sz,
   POINT ptOrigin,
   UINT fStyle = ILD_NORMAL,
   DWORD dwRop = SRCCOPY,
   COLORREF rgbBack = CLR_DEFAULT,
   COLORREF rgbFore = CLR_DEFAULT,
   DWORD fState = ILS_NORMAL,
   DWORD Frame = 0,
   COLORREF crEffect = CLR_DEFAULT
);

パラメータ

  • pimldp
    描画操作に関する情報が格納された IMAGELISTDRAWPARAMS 構造体へのポインタ。

  • pDC
    描画先のデバイス コンテキストへのポインタ。処理終了後、この CDC オブジェクトを削除する必要があります。

  • nImage
    描画するイメージのインデックス (開始値 0)。

  • pt
    イメージを描画する x、y 座標が格納された POINT 構造体。

  • sz
    描画するイメージのサイズを示す SIZE 構造体。

  • ptOrigin
    イメージ自体を基準として描画操作の左上隅を指定する x、y 座標が格納された POINT 構造体。指定した x 座標よりも左、および y 座標よりも上にあるイメージのピクセルは描画されません。

  • fStyle
    描画スタイルを指定するフラグ。オーバーレイ イメージも指定できます。オーバーレイ イメージについては、「解説」を参照してください。MFC の既定の実装である ILD_NORMAL では、イメージ リストの背景色でイメージが描画されます。背景色を CLR_NONE にすると、マスクを使用して透過イメージが描画されます。

    その他の候補スタイルについては、IMAGELISTDRAWPARAMS 構造体の fStyle メンバを参照してください。

  • dwRop
    ラスタ オペレーション コードを指定する値。これらのコードで描画元四角形の色データと描画先四角形の色データの混合方法を定義して、最終的な色を実現します。MFC の既定値である SRCCOPY では、描画元四角形を描画先四角形に直接コピーします。パラメータ fStyle で ILD_ROP フラグを指定しないと、このパラメータが無視されます。

    その他の候補値については、IMAGELISTDRAWPARAMS 構造体の dwRop メンバを参照してください。

  • rgbBack
    イメージの背景色。既定は CLR_DEFAULT です。このパラメータでは、アプリケーション定義の RGB 値、または次のどちらかの値を指定できます。

    説明

    CLR_DEFAULT

    既定の背景色。イメージ リストの背景色でイメージが描画されます。

    CLR_NONE

    背景色なし。透過イメージが描画されます。

  • rgbFore
    イメージの前景色。既定は CLR_DEFAULT です。このパラメータでは、アプリケーション定義の RGB 値、または次のどちらかの値を指定できます。

    説明

    CLR_DEFAULT

    既定の前景色。システムの強調表示色を前景色としてイメージが描画されます。

    CLR_NONE

    ディザ カラーなし。イメージは描画先のデバイス コンテキストの色と混合されます。

    fStyle で ILD_BLEND25 フラグまたは ILD_BLEND50 フラグを指定したときに、このパラメータを使用します。

  • fState
    描画の状態を示すフラグ。このメンバには、1 つ以上のイメージ リスト状態フラグを含むことができます。

  • Frame
    飽和効果とアルファ ブレンド効果の動作に影響します。

    このメンバを ILS_SATURATE で使用すると、アイコンのピクセルごとに RGB の 3 原色の各成分に追加される値が保持されます。

    このメンバを ILS_APLHA で使用すると、アルファ チャネルの値が保持されます。値の範囲は 0 ~ 255 で、0 が完全な透明、255 が完全な不透明です。

  • crEffect
    グロー効果とシャドウ効果に使用する COLORREF 値。

戻り値

イメージが描画できた場合は TRUE を返します。それ以外の場合は FALSE を返します。

解説

Win32 構造体を直接操作する場合は、最初の形式を使用します。MFC の既定の引数を利用する場合、または構造体を操作しない場合は、2 番目の形式を使用します。

オーバーレイ イメージはプライマリ イメージ上に描画されるイメージであり、このメンバ関数のパラメータ nImage で指定します。オーバーレイ マスクを描画するには、Draw メンバ関数を使用し、INDEXTOOVERLAYMASK マクロでオーバーレイ マスクの 1 から始まるインデックスを指定します。

使用例

int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();

::ImageList_GetIconSize(m_myImageList, &cx, &cy);

// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
   m_myImageList.DrawIndirect(&dc, i, CPoint(dx, 0), 
      CSize(cx, cy), CPoint(0, 0));
   dx += cx;
}      

必要条件

ヘッダー : afxcmn.h

参照

参照

CImageList クラス

階層図

CImageList::SetOverlayImage

その他の技術情報

CImageList のメンバ