選取圖形物件放入裝置內容中
本主題適用于在視窗的裝置內容中使用繪圖物件。 建立繪圖物件 之後,您必須將它選取到裝置內容中,以取代儲存在那裡的預設物件:
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
傳回的物件,而不將控制權傳回至主要訊息迴圈,您就不會發生任何問題。