Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / мерцание при перерисовке ATL ActiveX-контрола / 3 сообщений из 3, страница 1 из 1
20.08.2004, 02:36
    #32657949
vible
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
мерцание при перерисовке ATL ActiveX-контрола
Подскажите пложалуйста, в чем проблема.
Создаю ATL FullControl, обрабатываю, например, наезд и съезд мыши и рисую на контроле. Далее загоняю его или в VB или в ActiveXControlTestContainer, не важно. И когда навожу или убираю с контрола мышь, заметно мерцание при отрисоке. Рисую я по OnDraw, при создании котнтрола выбрал Normalized DC.

Пробовал создавать CompatibleDC, рисовал на нем, потом вызывал BitBlt, странно, но результата не дало, даже показалось "блыманье" усилилось (хотя в VB работает отлично, никаких мерцаний). Может, для этого не надо выбирать Normalized DC&

Когда создаю ActiveX С помощью MFC - все нормально, никаких мерцаний.
...
Рейтинг: 0 / 0
20.08.2004, 12:44
    #32658738
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
мерцание при перерисовке ATL ActiveX-контрола
Надо добавить обработку сообщения WM_ERASEBKGND.
В объявлении класса:
BEGIN_MSG_MAP(CAnyClass)
...
...
...
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
END_MSG_MAP()
...
...
...
LRESULT OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);



В реализации класса:
LRESULT CGr::OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return 1;
}
...
Рейтинг: 0 / 0
22.08.2004, 03:31
    #32660207
vible
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
мерцание при перерисовке ATL ActiveX-контрола
Спасибо, все работает отлично! Классный форум
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / мерцание при перерисовке ATL ActiveX-контрола / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]