|
|||||
|
|||||
|
||||||
WTLではGDIオブジェクトのブラシをCBrushTというテンプレートクラスでカプセル化しています。
テンプレート引数はbool値で、trueの場合はデストラクタでDeleteObject()を呼び出し、
falseの場合は呼び出しません。atlgdi.hヘッダではtypedefによって次のように宣言されています。
WTLの CBrushクラスは、MFCの同名のクラスとほぼ同じメンバ関数を用意しています。
以下に示すのは、CBrushクラスを使用してクライアント矩形に接する青い格子ハッチの円を描画する例です。![]()
この例では、まずブラシオブジェクトを作成し、 それを SelectBrush()で現在のブラシとして選択しています。
SelectBrush()は引数にHBRUSH型の変数を受け取りますが、
CBrushTクラスはHBRUSH変換演算子を持っているのでそのまま渡すことができます。
SelectBrush()は以前のブラシハンドルを返すので、
これをhOldBrushという変数に保存しておきます。次に、円を描画します。青い格子ハッチの円が描画されます。 最後に、先ほど保存しておいた元のブラシハンドルに戻すため、 再度 SelectBrush()を呼び出して元のブラシハンドルを選択します。ところで、WTLはストックブラシもサポートしています。 以下に示すのは、ストックブラシによって黒く塗りつぶされた円を描画する例です。
また、atlmisc.hヘッダに定義されている AtlGetStockBrush()というグローバル関数を使えば、
ストックブラシのハンドルを取得することができます。
|