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. |