Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.204.208] |
|
Сообщ.
#1
,
|
|
|
Есть класс CMyVideo, производный от CWnd. В классе есть функция OnPaint:
void CMyVideo::OnPaint() { if (wp == NULL) return; CPaintDC dc(this); // device context for painting В просмотре CView, есть несколько объектов класса CMyVideo. Некоторые объекты этого класса не нуждаются в перерисовке, и я после проверки этого факта, сразу выхожу из OnPaint, не создавая CPaintDC dc(this). Я потратил пол ночи, чтобы понять, почему некоторые объекты не перерисовываются! Оказалось, что после первого же выхода без создания CPaintDC dc(this), OnPaint перестает вообще работать во всех других объектах! При этом никаких сообщений не выдается. А если последовательность операторов такая: void CMyVideo::OnPaint() { CPaintDC dc(this); // device context for painting if (wp == NULL) return; то все работает правильно. В чем дело? Или я что то делаю не так? |
Сообщ.
#2
,
|
|
|
Да просто в каком-нибудь деструкторе класса CPaintDC происходят вызовы столь нужных функций BeginPaint да EndPaint!..
|
Сообщ.
#3
,
|
|
|
Цитата Славян @ Да просто в каком-нибудь деструкторе класса CPaintDC происходят вызовы столь нужных функций BeginPaint да EndPaint!.. Но ведь речь идет о разных объектах, после первого выхода из OnPaint, перестают работать другие объекты этого класса, почему? При этом объекты других классов работают нормально. |