プラットフォーム SDK
DrawState
さまざまなイメージを描画し、既定の状態や無効な状態などの視覚的な効果を適用します。
BOOL WINAPI DrawState(
HDC hdc, // デバイスコンテキストのハンドル
HBRUSH hbr, // ブラシのハンドル
DRAWSTATEPROC lpOutputFunc, // コールバック関数
LPARAM lData, // イメージに関する情報
WPARAM wData, // イメージに関する詳細情報
int x, // 水平位置
int y, // 垂直位置
int cx, // イメージの幅
int cy, // イメージの高さ
UINT fuFlags // イメージのタイプと状態
);
パラメータ
- hdc
- 描画に使いたいデバイスコンテキストのハンドルを指定します。
- hbr
- fuFlags パラメータで状態として DSS_MONO を指定した場合は、hbr パラメータで、イメージの描画に使いたいブラシのハンドルを指定します。状態がそれ以外の場合は、hbr パラメータは無視されます。
- lpOutputFunc
- イメージをレンダリングするアプリケーション定義のコールバック関数へのポインタを指定します。fuFlags パラメータでイメージのタイプとして DST_COMPLEX を指定した場合は、lpOutputFunc パラメータは必須です。イメージのタイプとして DST_TEXT を指定した場合は、lpOutputFunc パラメータはオプションであり、NULL を指定することもできます。それ以外の場合は、lpOutputFunc パラメータは無視されます。コールバック関数については、DrawStateProc 関数の説明を参照してください。
- lData
- イメージに関する情報を指定します。このパラメータの意味は、イメージのタイプによって異なります。
- wData
- イメージに関する情報を指定します。このパラメータの意味は、イメージのタイプによって異なります。ただし、DrawStateProc 関数で使う場合は、ゼロ拡張として扱われます。
- x
- イメージの左上隅の水平位置を指定します。
- y
- イメージの左上隅の垂直位置を指定します。
- cx
- イメージの幅をデバイス単位で指定します。イメージのタイプが DST_COMPLEX の場合、このパラメータは必須です。その他の場合は、0 を指定すると、イメージの幅が自動的に計算されます。
- cy
- イメージの高さをデバイス単位で指定します。イメージのタイプが DST_COMPLEX の場合、このパラメータは必須です。その他の場合は、0 を指定すると、イメージの高さが自動的に計算されます。
- fuFlags
- イメージのタイプと状態を指定します。このパラメータのタイプは、次の値のいずれかです。
| 値(タイプ) | 意味 |
| DST_BITMAP | イメージはビットマップです。lData パラメータは、ビットマップのハンドルです。既存のデバイスコンテキストに対してビットマップをあらかじめ選択しておくことができない点に注意してください。 |
| DST_COMPLEX | イメージはアプリケーションが定義します。DrawState 関数は、このイメージをレンダリングするために、lpOutputFunc パラメータが指すコールバック関数を呼び出します。 |
| DST_ICON | イメージはアイコンです。lData パラメータは、アイコンのハンドルです。 |
| DST_PREFIXTEXT | イメージはテキストであり、アクセラレータ(ショートカットキー)を表す文字を保持している可能性があります。プリフィックス文字「&」は、その次に続く文字に下線(_)を付けて表示する命令であると解釈されます(たとえば、「&O」は、下線付きの O として表示されます)。lData パラメータには文字列へのポインタを、wData パラメータは文字列の長さを指定します。wData パラメータに 0 を指定した場合は、文字列は NULL で終わる文字列でなければなりません。 |
| DST_TEXT | イメージはテキストです。lData パラメータには文字列へのポインタを、wData パラメータには文字列の長さを指定します。wData パラメータに 0 を指定した場合は、文字列は NULL で終わる文字列でなければなりません。 |
イメージの状態として、次に示す値のいずれかを指定します。
| 値(状態) | 意味 |
| DSS_DISABLED | イメージを浮き上がらせます(エンボス)。 |
| DSS_HIDEPREFIX | Windows 2000:テキスト内のアンパサンド(&)プレフィックスを無視し、その後に続く文字に下線を付けません。この値は、DST_PREFIXTEXT と組み合わせて使わなければなりません。 |
| DSS_MONO | hbr パラメータで指定したブラシを使って、イメージを描画します。 |
| DSS_NORMAL | イメージをそのまま描画します。 |
| DSS_PREFIXONLY | Windows 2000:アンパサンド(&)プレフィックスに続く文字の位置に、下線だけを描画します。この文字列の中にあるテキストをいずれも描画しません。この値は、DST_PREFIXTEXT と組み合わせて使わなければなりません。 |
| DSS_RIGHT | テキストを右寄せします。 |
| DSS_UNION | イメージをディザリングします。 |
DSS_NORMAL 以外の状態を指定した場合、視覚的効果を適用する前にイメージを自動的にモノクロームへ変換します。
戻り値
関数が成功すると、0 以外の値が返ります。
関数が失敗すると、0 が返ります。
Windows NT/2000:拡張エラー情報を取得するには、 関数を使います。
対応情報
Windows NT/2000:Windows NT 4.0 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装
参照
DrawStateProc