文字の背景について見ていきます。
// // MyApp.h // class MyApp : public MyMainWnd{ public: // WM_PAINT void wmPaint(HDC hdc){ MyDC g(hdc); g.TextBkMode(FALSE); g.TextOut(10, 10, L"Hello!"); } };
実行画面です。 文字の背景を見てください。
文字を表示させると、背景が白くなっていました。 これは次のように考えます。 まず、背景を白いブラシで塗る。 その後、文字をペンで描くのです。 SetBkMode関数は、このやり方を変えることができます。
int SetBkMode( HDC hdc, // デバイスコンテキストのハンドル int iBkMode // 背景モード );
iBkMode には、OPAQUE か TRANSPARENT を代入します。 OPAQUE は既定のモードです。 TRANSPARENT は背景を塗らないで文字を描くモードです。