<Return[D]><Top>

DrawIconEx

Declare Function Api_DrawIconEx& Lib "user32" Alias "DrawIconEx" (ByVal hDC&, ByVal xLeft&, ByVal yTop&, ByVal hIcon&, ByVal cxWidth&, ByVal cyWidth&, ByVal istepIfAniCur&, ByVal hbrFlickerFreeDraw&, ByVal diFlags&)

Declare Function DrawIconEx Lib "user32" Alias "DrawIconEx" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long

指定されたデバイスコンテキストで 1 個のアイコンまたはカーソル(マウスカーソル)を描画し、指定されたラスタオペレーションを実行し、指定に応じてアイコンまたはカーソルを拡大または縮小する。

パラメータ
hdc
    アイコンまたはカーソルの描画先となるデバイスコンテキストのハンドルを指定する。
xLeft
    アイコンまたはカーソルの左上隅の x 座標を論理単位で指定する。
yTop
    アイコンまたはカーソルの左上隅の y 座標を論理単位で指定する。
hIcon
    描画対象のアイコンまたはカーソルのハンドルを指定する。アニメーションカーソルのハンドルも指定できる。
cxWidth
    アイコンまたはカーソルの幅を論理単位で指定する。

    このパラメータが 0 で、diFlags パラメータで DI_DEFAULTSIZE を指定した場合、この関数は SM_CXICON または SM_CXCURSOR

    のシステムメトリック値を使って幅を設定する。

    このパラメータが 0 で、DI_DEFAULTSIZE が指定されていない場合、リソースの実際の幅を使う。
cyWidth
    アイコンまたはカーソルの高さを論理単位で指定する。このパラメータが 0 で、diFlags パラメータで DI_DEFAULTSIZE を指定した場合、

    この関数は SM_CYICON または SM_CYCURSOR のシステムメトリック値を使って高さを設定する。このパラメータが 0 で、

    DI_DEFAULTSIZE が指定されていない場合、リソースの実際の高さを使う。
istepIfAniCur
    hIcon パラメータでアニメーションカーソルを指定した場合、描画対象のフレームのインデックス番号を指定する。

    hIcon パラメータがアニメーションカーソルを指定していない場合は、無視される。

    アニメーションカーソル(.ani ファイル)は複数のビットマップで作成されているが、各ビットマップをフレームと呼ぶ。

    そして、各フレームを識別するために割り当てられている番号(序数)がインデックス番号である。
hbrFlickerFreeDraw
    1 個のブラシのハンドルを指定する。

    システムはこのブラシを使って、ちらつきのない描画を実現する。

    有効なブラシのハンドルを指定すると、システムは、指定されたブラシと背景色を使ってオフスクリーンビットマップを作成し、

    アイコンまたはカーソルをそのビットマップ内に描き、hdc パラメータで指定されたデバイスコンテキストへそのビットマップをコピーする。

    hbrFlickerFreeDraw パラメータで NULL を指定すると、システムは、アイコンまたはカーソルをデバイスコンテキストに直接描画する。
diFlags
    描画フラグを指定する。次の値のいずれかを指定する。

    値                            意味                                                                                                                                            
    DI_COMPAT ユーザーが指定したイメージではなく、システムの既定のイメージを使って、アイコンまたはカーソルを描画する。
    DI_DEFAULTSIZE cxWidth と cyWidth の各パラメータで 0 が指定されている場合、アイコンまたはカーソル用のシステムメトリックの値
  で指定された幅と高さを使って、アイコンまたはカーソルをで描画する。
  cxWidth と cyWidth の各パラメータで 0 を指定し、このフラグを指定しなかった場合、この関数はリソースの実際の
  サイズを使う。
    DI_IMAGE イメージを使ってアイコンまたはカーソルを描画する。
    DI_MASK マスクを使ってアイコンまたはカーソルを描画する。
    DI_NORMAL DI_IMAGE と DI_MASK の組み合わせである。


戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    DrawIconEx 関数は、xLeft と yTop の各パラメータが指定する位置に、アイコンの左上隅を合わせる。

    この位置は、デバイスコンテキストの現在のマッピングモードに依存する。