簡體   English   中英

MFC:戒指-無顏色變化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM