2015-02-06 3 views
0

Я пытаюсь изучить MFC из книги: MV C++ Windows Application по примеру (2008). Существует пример приложения. где я могу рисовать кольца наполненных ведьм выбрали цвет:MFC: Ring - без изменения цвета

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

+0

@ acraig5075 Спасибо, что он работал с: «Кистью кисти (цветной); \t \t pDC-> SelectObject (brush); \t \t pDC-> Ellipse ... '- вы объявляете это как ответ, или мы оставляем его как есть? – mielu

+0

Рад, что это сработало. Я добавил комментарий в качестве ответа, чтобы у вас не было ответов на ваши вопросы без ответа. – acraig5075

ответ

1

ДК рисует с любой кистью, пером, шрифт и т.д. объекты в настоящее время выбраны. Поэтому перед выполнением рисунка должно произойти SelectObject ручки и кисти.

Смежные вопросы