Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Через 3 дня :

День славянской письменности и культуры


GetDC() Tcanvas - а как теперь стереть с экрана мусор?


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
CyberMerlin
Гость







СообщениеСб, 26-Май-2007 13:17    Заголовок сообщения: GetDC() Tcanvas - а как теперь стереть с экрана мусор?
Цитата

кто-н рисовал на экране?
Как вы очищали экран от своего мусора?
В начало
ДОБ
Частый гость


Возраст: 23
Знак зодиака: Козерог
Зарегистрирован: 10.05.2007
Сообщения: 40

СообщениеСб, 26-Май-2007 13:29 
Цитата

Нужна перерисовать окно или если рисуешь на Tbitmap тогда нарисовать четырёх угольник
В начало
Посмотреть профиль Отправить личное сообщение
CyberMerlin
Гость







СообщениеСб, 26-Май-2007 13:38 
Цитата

я рисую прям на экране поверх всего
и мне нужно просто обновить экран целиком
ИМХО лучший способ
В начало
Пол:Муж NikotiN
Розовый мамонт


Возраст: 26
Знак зодиака: Овен
Зарегистрирован: 18.03.2005
Сообщения: 2137

СообщениеСб, 26-Май-2007 14:20 
Цитата

кажись, надо refresh сделать для окна HWND_DESCTOP
_________________
Сила дурака в том, что умный перед ним бессилен.
В начало
Посмотреть профиль Отправить личное сообщение
ДОБ
Частый гость


Возраст: 23
Знак зодиака: Козерог
Зарегистрирован: 10.05.2007
Сообщения: 40

СообщениеСб, 26-Май-2007 16:10 
Цитата

Ну если ты рисуешь на экране получая ссылку как GetDC(0) тогда тебе нужна перебрать все окна и послать им WM_PAINT
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеСб, 26-Май-2007 16:21 
Цитата

попробуй так:
delphi:
  1.   R:=Rect(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
  2.   RedrawWindow(0, @R, 0, RDW_INVALIDATE or RDW_UPDATENOW or RDW_ALLCHILDREN);

_________________
Пойду посплю перед сном.
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж NikotiN
Розовый мамонт


Возраст: 26
Знак зодиака: Овен
Зарегистрирован: 18.03.2005
Сообщения: 2137

СообщениеСб, 26-Май-2007 20:03 
Цитата

в ХП (или в Me?) вроде как была такая фича, когда parent окно перерисовывается, то и все его child тоже.... в висте вообще всё переделали....
хотя чего-то мне кажется, что была такая тема-то тут....

Добавлено спустя 12 минут 30 секунд:

о! нашёл! надо invalidateRect сделать для окна null/nil

_________________
Сила дурака в том, что умный перед ним бессилен.
В начало
Посмотреть профиль Отправить личное сообщение
CyberMerlin
Гость







СообщениеВс, 27-Май-2007 10:30 
Цитата

спасибо всем
RedrawWindow помогло
PostMessage(HWND_broadcast,wm_paint,0,0) некоторые окна воспринимают с косяками
UpdateWindow - не всегда срабатывает
В начало
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеПт, 01-Июн-2007 6:42 
Цитата

Есть ещё один вариантик... Чтобы не перерисовывать весь экран... Предварительно скопировать тот участок рабочего стола где рисуешь в буфер... Потом нарисовал что нужно, и опять-же через BitBlt восстановить участок... :)
_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100