[英]MFC: Ring - no color change
我正在嘗試從書中學習MFC:通過Example(2008)獲得MV C ++ Windows Application。 有示例應用程序。 我可以在其中畫出充滿巫婆選擇顏色的戒指:
void CRingView::OnDraw(CDC* pDC)
{
CRingDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
PointArray& pointArray = pDoc->GetPointArray();
ColorArray& colorArray = pDoc->GetColorArray();
int iSize = static_cast<int>(pointArray.GetSize());
for (int iIndex = 0; iIndex < iSize; iIndex++)
{
CPoint point = pointArray[iIndex];
COLORREF color = colorArray[iIndex];
CPen pen(PS_SOLID, 0, BLACK);
CBrush brush(color);
pDC->Ellipse(point.x - RADIUS, point.y - RADIUS, point.x + RADIUS, point.y + RADIUS);
CPen* pOldPen = pDC->SelectObject(&pen);
CBrush* pOldBrush = pDC->SelectObject(&brush);
}
}
但是即使我這樣做也沒有顏色變化(總是像bg一樣是白色):
CBrush brush(BLACK);
所以問題是:我在做什么錯? 我使用的是Visual Studio 2013,但對於新項目,應該不會出現任何兼容性錯誤。 黑色是:
static const COLORREF BLACK = RGB(0, 0, 0);
DC會使用當前選擇的畫筆,鋼筆,字體等對象進行繪制。 因此,筆和畫筆的SelectObject
應該在繪制之前發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.