Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Урок 6. Рисуем в окне / Уроки MFC / Visual C++
Visual C++. MFC Урок 6. Рисуем в окне
Давайте теперь посмотрим, как можно в нашем окне что-нибудь нарисовать. В Windows все рисование происходит на так называемом контексте устройства (Device context по-английски). При этом рисование происходит одинаково и для экрана, и для принтера, и для плоттера и т. п. Вы можете полагать, что контекст устройства - это как бы холст. На нём вы рисуете, применяя кисти, перья, шрифты и другие объекты.
Когда окну надо что-либо перерисовать, оно получает сообщение WM_PAINT. Для рисования нам надо написать обработчик для этого события. Для этого мы должны сделать шаги 3-5 из предыдущего урока. Напомним их.
Итак, вносим объяление функции в класс:
class CMyMainWnd : public CFrameWnd{
...
afx_msg void OnLButtonDown(UINT, CPoint);
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
В реализации мы делаем следующее - заводим контекст устройства для рисования в строке
CPaintDC* pDC=new CPaintDC(this);
Здесь контест устройства мы создаём динамически. Слово this означает, что мы его тут же прикрепляем к нашему окну (так как сейчас мы находимся в классе CMyMainWnd). У контекста устройства много разных методов. Один из них - это рисование прямоугольника, который мы и используем. Его параметры - это координаты верхнего левого и правого нижнего углов. Есть и множество других методов - для рисования круга и эллипса - Ellipse и т. д.
Запускаем прграмму. В левом углу должен появится квадратик.