![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| AlexanderV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 31.8.2005 Где: Украина, Киев Репутация: нет Всего: нет |
Я создаю окно в центре экрана, все делаю как полагается. На этом окне у меня должен быть изображен bitmap. Код, который помещает его на форму, находится в событии WM_PAINT. А изначально фон окна - черный. Когда я вызываю функцию
ShowWindow(hwnd,SW_SHOW), то сначала показывается окно, а потом вызывается событие WM_PAINT. В результате возникает неприятный эффект мигания. Как сделать так, чтоб окно не показывалоть до тех пор, пока не будет перерисовано? |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Этого делать не надо, просто тебе надо отловить WM_SHOWWINDOW, и в нем (дополнительно к WM_PAINT) сделать перерисовку |
|||
|
||||
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
Может сразу после Show сделать UpdateWindow? Хотя Вы наверное так и делаете...
Вообще странно, что мигает. -------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
AlexanderV чуток ошибся мегание от того, что у тебя сначала DefWindowProc ловит WM_ERASEBKGND и в нем заполняет все окно черным, и только потом твой WM_PAIN обработчик рисует картинку. Что избавиться от мигания, перениси отрисовку из WM_PAIN в WM_ERASEBKGND |
|||
|
||||
| AlexanderV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 31.8.2005 Где: Украина, Киев Репутация: нет Всего: нет |
Да, помогло. Теперь все клас Кстати, а какой функцией меняется фон окна? |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Это не функцией меняеться. Кисть которой будет заполняться фон окна задветься при регистрации класса окна |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |