![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Вот в чем вопрос. Ко мне пришел WM_SIZE и так складываются отбстоятельство что мне надо перерисовать все окно со всеми контролами на них.
Как сделать так: 1. создаею временное DC 2. Все перерисовываю в него (?) т.е. Invalidate(true) - Как-то направить в мое HDC 3. Блитаю В общем проблема в основном во 2-м пункте -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Если окно твое, и ты сама его рисуешь, то в чем проблема? Выдели функцию рисования в заданный контекст из OnPaint, и пользуйся.
Но вообще-то как-то плохо звучит, перерисовка на OnSize. Чтобы тебе не сделать Invalidate? И пусть перерисовывается, когда виндовсу удобно... Или вообще в стиль класса добавить CS_HREDRAW | CS_VREDRAW, тогда само будет... -------------------- ... |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Я наверное не понятно объяснила.
Вот сомтри. у меня идет WM_SIZE - при этом меняются размеры положения/кучи контролов, многие из них сами по себе тяжеловаты в отрисовки. И получается что у меняна WM_SIZE - именно потому что куче контролов приходит WM_PAINT, и идет множетсво блитов на один DC. Как бы исхитрится так: чтобы сказать что вот сейчас все блиты идут в совместимое устройство, а потом я их проресую ? -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Все равно не очень поняла, в чем проблема.
Но если в том, что resize, скажем, диалога приводит к каскадному перемещению множества контролов, что выражается в подергивании, то попробуй вместо MoveWindow\SetWindowPos отложенное перемещение: BeginDeferWindowPos\DeferWindowPos\EndDeferWindowPos. Это гарантирует, что все будут перерисовано один раз, на завершение. -------------------- ... |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Я даже раньше про такие не слышала - класс, стало немного лучше Еще вопрос в дагонку. когда я максимизирую окно, оно 1. Мувет его в точку 0;0 2. Перерисовывает со старым размером 3. Резайзит 4. перерисовывает сновым. ОТ таго в этом месте все торомзит. При этом твои три волшебные функции тут не помогают Есть какая еще идея? -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Боюсь, нет идеи...
Добавлено @ 15:08 А можь его сначала скрыть, а потом восстановить максимизированным? -------------------- ... |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Вся проблема в том, что в XP c разными вариантами настроек системы(лучший вид/лучшее быстродействие) система ведет себя по разному, и шлет разную поледовательность сообщени Но spy++ мне показал именно такую последовательность сообщений -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
![]()
|
| Правила форума "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. |