グラフィック オブジェクトをデバイス コンテキストに選択する
このトピックは、ウィンドウのデバイス コンテキストでのグラフィック オブジェクトの使用に適用されます。 描画オブジェクトを作成したら、それをデバイス コンテキストに選択して、そこに格納されている既定のオブジェクトの代用にする必要があります。
void CNewView::OnDraw(CDC* pDC)
{
CPen penBlack; // Construct it, then initialize
if (penBlack.CreatePen(PS_SOLID, 2, RGB(0, 0, 0)))
{
// Select it into the device context
// Save the old pen at the same time
CPen* pOldPen = pDC->SelectObject(&penBlack);
// Draw with the pen
pDC->MoveTo(20, 20);
pDC->LineTo(40, 40);
// Restore the old pen to the device context
pDC->SelectObject(pOldPen);
}
else
{
// Alert the user that resources are low
}
}
グラフィック オブジェクトの有効期間
SelectObject によって返されるグラフィック オブジェクトは "一時的" なものです。つまり、次にプログラムがアイドル時間を取得したときに、クラス CWinApp
の OnIdle メンバー関数によって削除されます。 SelectObject
によって返される オブジェクトを、メイン メッセージ ループに制御を返さずに 1 つの関数で使用する限り、問題はありません。