DrawStateA 関数 (winuser.h)

DrawState 関数は、イメージを表示し、無効な状態や既定の状態などの状態を示す視覚効果を適用します。

構文

BOOL DrawStateA(
  [in] HDC           hdc,
  [in] HBRUSH        hbrFore,
  [in] DRAWSTATEPROC qfnCallBack,
  [in] LPARAM        lData,
  [in] WPARAM        wData,
  [in] int           x,
  [in] int           y,
  [in] int           cx,
  [in] int           cy,
  [in] UINT          uFlags
);

パラメーター

[in] hdc

描画するデバイス コンテキストへのハンドル。

[in] hbrFore

fuFlags パラメーターで指定された状態がDSS_MONO場合、イメージの描画に使用されるブラシへのハンドル。 このパラメーターは、他の状態では無視されます。

[in] qfnCallBack

イメージのレンダリングに使用されるアプリケーション定義のコールバック関数へのポインター。 fuFlags のイメージの種類がDST_COMPLEX場合は、このパラメーターが必要です。 これは省略可能であり、イメージの種類がDST_TEXT場合は NULL にすることができます 。 他のすべてのイメージの種類では、このパラメーターは無視されます。 コールバック関数の詳細については、「 DrawStateProc 関数」を参照してください。

[in] lData

画像に関する情報。 このパラメーターの意味は、イメージの種類によって異なります。

[in] wData

画像に関する情報。 このパラメーターの意味は、イメージの種類によって異なります。 ただし、 DrawStateProc 関数で使用するために 0 が拡張されています。

[in] x

イメージを描画する水平方向の位置 (デバイス単位)。

[in] y

イメージを描画する垂直方向の位置 (デバイス単位)。

[in] cx

イメージの幅 (デバイス単位)。 このパラメーターは、イメージの種類がDST_COMPLEX場合に必要です。 それ以外の場合は、イメージの幅を計算するために 0 を指定できます。

[in] cy

イメージの高さ (デバイス単位)。 このパラメーターは、イメージの種類がDST_COMPLEX場合に必要です。 それ以外の場合は、イメージの高さを計算するために 0 を指定できます。

[in] uFlags

イメージの種類と状態。 このパラメーターには、次のいずれかの型値を指定できます。

値 (型) 意味
DST_BITMAP
イメージはビットマップです。 lData パラメーターはビットマップ ハンドルです。 ビットマップを既存のデバイス コンテキストに選択できないことに注意してください。
DST_COMPLEX
イメージはアプリケーション定義です。 イメージをレンダリングするために、 DrawStatelpOutputFunc パラメーターで指定されたコールバック関数を呼び出します。
DST_ICON
画像はアイコンです。 lData パラメーターはアイコン ハンドルです。
DST_PREFIXTEXT
画像は、アクセラレータニーモニックを含む可能性があるテキストです。 DrawState は、アンパサンド (&) プレフィックス文字をディレクティブとして解釈し、その後の文字をアンダースコア付けします。 lData パラメーターは文字列へのポインターであり、wData パラメーターは長さを指定します。 wData が 0 の場合、文字列は null で終わる必要があります。
DST_TEXT
画像はテキストです。 lData パラメーターは文字列へのポインターであり、wData パラメーターは長さを指定します。 wData が 0 の場合、文字列は null で終わる必要があります。
 

このパラメーターには、次のいずれかの状態値を指定することもできます。

値 (状態) 意味
DSS_DISABLED
イメージを浮き彫りにします。
DSS_HIDEPREFIX
テキスト内のアンパサンド (&) プレフィックス文字を無視するため、後に続く文字に下線は付けられません。 これは、DST_PREFIXTEXTで使用する必要があります。
DSS_MONO
hbr パラメーターで指定されたブラシを使用してイメージを描画します。
DSS_NORMAL
イメージを変更せずに描画します。
DSS_PREFIXONLY
アンパサンド (&) プレフィックス文字の後の文字の位置に下線のみを描画します。 文字列内のテキストは描画されません。 これは、DST_PREFIXTEXTで使用する必要があります。
DSS_RIGHT
テキストを右揃えにします。
DSS_UNION
イメージをディザリングします。
 

DSS_NORMALを除くすべての状態では、視覚効果が適用される前に画像がモノクロに変換されます。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。

注釈

注意

winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DrawState を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

こちらもご覧ください

DrawStateProc

描画関数と描画関数

描画と描画の概要