Visual Studio C++: как рисовать на окне MFC dialog-based программы |
|
Добавил(а) microsin
|
Процесс по шагам (на примере класса диалогового окна CmyDlg).
1.
void CmyDlg::OnPaint()
{
//Рисуем черный кружок с закрашенной внутри областью белым
// цветом (параметры пера и кисти по умолчанию).
RECT ellipse;
CPaintDC dc(this);
ellipse.top = 1;
ellipse.left = 3;
ellipse.bottom = 1+5;
ellipse.right = 3+5;
dc.Ellipse(&ellipse);
//Рисуем квадратик с красным бордюром (сменим перо)
// и зеленой закрашенной областью (сменим кисть).
CPen aPen;
aPen.CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
CPen *pOldPen = dc.SelectObject(&aPen);
CBrush aBrush;
aBrush.CreateSolidBrush(RGB(0, 255, 0));
CBrush *pOldBrush = dc.SelectObject(&aBrush);
dc.Rectangle(50,100,60,110);
//Восстанавливаем старые перо и кисть.
dc.SelectObject(pOldPen);
dc.SelectObject(pOldBrush);
...
}
2. Чтобы принудительно перерисовать окно, нужно вызвать Invalidate().
Внимание! Вышеуказанное рисование работает только в методе OnPaint, к которому привязано сообщение WM_PAINT. |