2015-02-06 51 views
0

我想從書中學習MFC:MV C++ Windows Application by Example(2008)。有示例應用程序。在那裏我可以吸取環充滿女巫選擇的顏色:MFC:環 - 沒有顏色變化

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); 
+2

在進行橢圓繪製之前,請嘗試選擇筆和筆刷。 – acraig5075 2015-02-06 12:41:04

+0

@ acraig5075感謝它的使用:'CBrush brush(color); \t \t pDC-> SelectObject(brush); \t \t pDC-> Ellipse ...' - 您是否將它作爲答案廣告或我們保留原樣? – mielu 2015-02-06 14:53:33

+0

很高興工作。我已將評論添加爲答案,以便您對自己的個人資料沒有未解答的問題。 – acraig5075 2015-02-06 16:52:51

回答

1

直流繪製與任何刷,筆,字體等目前選定的對象。因此在繪圖之前筆和刷子的SelectObject應該發生。