Visual Studio C++: как рисовать на окне MFC dialog-based программы |
|
Написал microsin
|
11.06.2009 |
Процесс по шагам (на примере класса диалогового окна 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.
|
Последнее обновление ( 11.06.2009 )
|