|
|
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
Visual C++ 6.0 Как сделать так, чтобы при переключении с окна приложения и на возвращение к нему оно не перерисовывалось? Пробовал через поиск по форуму найти ответ, но конкретно на этот вопрос ответа не нашёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 16:34 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
Pavel278Visual C++ 6.0 Как сделать так, чтобы при переключении с окна приложения и на возвращение к нему оно не перерисовывалось? Пробовал через поиск по форуму найти ответ, но конкретно на этот вопрос ответа не нашёл. Можно перехватить WM_ACTIVATE и WM_PAINT, организовав необходимую логику перерисовки, взводя и анализируя флаг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 17:30 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
КодерМожно перехватить WM_ACTIVATE и WM_PAINT, организовав необходимую логику перерисовки, взводя и анализируя флаг Простите, а какой флаг? Может, достаточно будет его установить по умолчанию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 17:40 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
Pavel278 КодерМожно перехватить WM_ACTIVATE и WM_PAINT, организовав необходимую логику перерисовки, взводя и анализируя флаг Простите, а какой флаг? Может, достаточно будет его установить по умолчанию? Флаг - это такая переменная, в которую записывается состояние программы. К примеру, глобальная переменная a=0 изначально. После прихода WM_ACTIVATE c LOWORD(wParam) равным WA_INACTIVE, присвоить а=2. В WM_PAINT не вызывать модуль перерисовки, если a равно 2. После прихода WM_ACTIVATE c LOWORD(wParam) равным WA_ACTIVE или WA_CLICKACTIVE, присвоить a=1, а уже в следующем WM_PAINT сбросить флаг в 0, но не перерисовывать. Это первое, что приходит на ум. В любом случае нужно поэкспериментировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 17:58 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
Зачем бы это ? Хочешь на мониторе "черную дыру" получить вместо твоего приложения ? Если хочешь делать оптимизацию прорисовки сложных изображений, то это делается не такими способами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 19:20 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
Ты всяких кодеров не слушай, если ты WM_PAINT не обработаешь, у тебя вместо окна будет дырка черная (или белая) - и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 19:22 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
Кодер Pavel278 КодерМожно перехватить WM_ACTIVATE и WM_PAINT, организовав необходимую логику перерисовки, взводя и анализируя флаг Простите, а какой флаг? Может, достаточно будет его установить по умолчанию? Флаг - это такая переменная, в которую записывается состояние программы. К примеру, глобальная переменная a=0 изначально. После прихода WM_ACTIVATE c LOWORD(wParam) равным WA_INACTIVE, присвоить а=2. В WM_PAINT не вызывать модуль перерисовки, если a равно 2. После прихода WM_ACTIVATE c LOWORD(wParam) равным WA_ACTIVE или WA_CLICKACTIVE, присвоить a=1, а уже в следующем WM_PAINT сбросить флаг в 0, но не перерисовывать. Это первое, что приходит на ум. В любом случае нужно поэкспериментировать. Можно при потере активизации сбросить содержимое окна в bitmap, находящийся в памяти и выводить его при WM_PAINT. Это несколько строк кода и выполняется очень быстро. В принципе, если алгоритм отрисовки очень сложный и длинный, то лучше рисовать все в bitmap или метафайл, находящиеся в памяти, которые потом отрисовывать на экране при WM_PAINT. Тогда перерисовка не будет столь напрягать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 22:01 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
Землекоп Можно при потере активизации сбросить содержимое окна в bitmap, находящийся в памяти и выводить его при WM_PAINT. Это несколько строк кода и выполняется очень быстро. В принципе, если алгоритм отрисовки очень сложный и длинный, то лучше рисовать все в bitmap или метафайл, находящиеся в памяти, которые потом отрисовывать на экране при WM_PAINT. Тогда перерисовка не будет столь напрягать. Спасибо за идею. Попробую её реализовать. Кодер Флаг - это такая переменная, в которую записывается состояние программы. К примеру, глобальная переменная a=0 изначально. После прихода WM_ACTIVATE c LOWORD(wParam) равным WA_INACTIVE, присвоить а=2. В WM_PAINT не вызывать модуль перерисовки, если a равно 2. После прихода WM_ACTIVATE c LOWORD(wParam) равным WA_ACTIVE или WA_CLICKACTIVE, присвоить a=1, а уже в следующем WM_PAINT сбросить флаг в 0, но не перерисовывать. Это первое, что приходит на ум. В любом случае нужно поэкспериментировать. Не, что такое флаг я знаю. Я просто думал, что ты имел в виду какую определённую переменную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 10:36 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
MasterZivЗачем бы это ? Хочешь на мониторе "черную дыру" получить вместо твоего приложения ? Если хочешь делать оптимизацию прорисовки сложных изображений, то это делается не такими способами. Да, я вообще именно это хотел бы сделать. Если посоветуешь что-нибудь почитать по этому поводу буду рад. В принципе, пока этот вопрос не так остро стоит, как я понял. Но в принципе, хочется узнать, как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 10:41 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
А тебе уже сказали - рисовать в bitmap, metafile. Битмап- много памяти но быстро, если сложный алгоритм рисования (поскольку сохнаняется результат), metafile - мало памяти но долго, если сложный рисунок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 10:55 |
|
||
|
Перерисовка окна при переключении на другое приложение
|
|||
|---|---|---|---|
|
#18+
MasterZiv рисовать в bitmap, metafile. Битмап- много памяти но быстро, если сложный алгоритм рисования (поскольку сохнаняется результат), metafile - мало памяти но долго, если сложный рисунок. Грубо говоря, идея такая: при переходе от окна приложения изображение сохраняется в mf или bmp при возвращении оно оттуда достаётся. Делается это просто обработкой события WM_ACTIVATE Правильно? Какие методы использовать для сохранения. Что мне в хелпе посмотреть, грубо говоря? Прошу прощения за занудство ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 15:22 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33098308&tid=2033202]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 400ms |

| 0 / 0 |
