![]() |
|
![]() ![]() ![]() |
|
Melevir |
|
||||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
Всем доброго времени суток!
Нужна помощь. Пишу класс, которому передаешь окно (CWnd), а он на нем рисует график. Проблема в том, что я не могу разобраться с CPaintDC. Как я понял, в каждом методе класса его создавать нельзя, он должен быть одним из полей. А вот как с ним обращаться тогда.. Подскажите пожалуйста.
При такой реализации ругается
Если в каждой функции создавать CPaintDC, то будет рисоваться только первая из двух вызванных (DrawRect()). |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
||||
|
||||
Melevir |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
Гениально, черт побери! Спасибо!
![]() А все же если так делать, то как? Мало ли что еще мне от формы понадобится.. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
CPainDC нужно создавать только в одном месте - в методе OnPaint. В других местах - бесполезно. Держать членом класса тоже бессмысленно. В остальные методы (вызываемые из OnPaint) лучше передавать не CPaintDC, а базовый CDC: это даст больше гибкости, в частности, можно будет в любой момент перейти к рисованию во внеэкранном буфере и т.д. Схема работы такая: void CMyWnd::OnPaint() { CPaintDC dc (this); DrawSomething (dc); DrawSomethingElse (dc); } При этом методы Draw... объявлены так: void DrawSomething (CDC&); -------------------- ... |
|||
|
||||
Melevir |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 10.3.2008 Репутация: нет Всего: нет |
Спасиба
![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |