Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перерисовка окна на WinApi, Окно должно обновить, но не стирать!!! 
:(
    Опции темы
Гость_Дмитрий
Дата 13.5.2004, 14:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как при программировании на WinApi перехватить событие изменения размеров окна, но чтобы обработав его, окно таинственным образом не стирало себя. Это как на подобие функции InvalidateRect(..., ..., TRUE) - последний параметр указывает, нужно ли перед работай функции стирать (закрашивать цветом фона) окно или нет.

Так вот, когда изменяешь размер, окно получает сообщение - сначало стереть себя, и лишь потом обновить. А мне нужно, чтобы окно не стералось, а то происходит нелепое моргание.

Помогите!
Спасибо.
Дмитрий [email protected]
  Вверх
mr.DUDA
Дата 13.5.2004, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Во-первых, окно сначала стирается а затем перерисовывается. За стирание отвечает сообщение WM_ERASEBKGND, за отрисовку - WM_PAINT. Всё что нужно сделать, чтобы окно не мерцало при перерисовке (функциями RedrawWindow, UpdateWindow, Invalidate и т.п.) - это написать свой пустой обработчик сообщения WM_ERASEBKGND, в котором не выполнять никаких действий; в обработчике WM_PAINT не рисовать напрямую в графический контекст ассоциированный с окном, а создать memory-based контекст граф. вывода, отрисовать всё туда (предварительно очистив его с пом. FillSolidRect), и "перекинуть" всё содержимое контекста памяти в контекст окна функцией BitBlt. Пример на MFC есть в нашем FAQ по С++.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0762 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.