Очистка экрана от графики

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Очистка экрана от графики

Сообщение VERITAS » 20.06.2007 (Ср) 22:34

Доброго времени суток..

Суть: Решил сделать ресайзинг (изменение размера) формы как в Winamp.. Вооружившись всем необходимым после нескольких часов получился контрол который позволяет резайзить форму предварительно рисуя фокус, а потом отрисовывая форму. Да и еще с возможностью наложения скина (растягивание, дублирование и т.п.) Вышло нелохо.. Но проблема в том что незнаю как очистить экран от случайного мусора после рисования.
Рисуя фокус через DrawFocusRect стирал я его повторным наложением этого фокуса на то место где он был нарисован.. Но если произошло подвисание программки - фокус может остаться на экране.. Возникает мусор :(
Может есть другой способ очистки экрана?

Примечание: Рисую на контексе совместимом с экраном, получая его через GetDc(0&)
No comments ...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 20.06.2007 (Ср) 22:48

Не надо его там так рисовать. Создаёшь отдельную форму. Ставишь ей габариты экрана. Далее - через Begin(End)Path и SetWindowRgn(см. API Guide). Фишка в отрисовке, когда идёт запись патча. В итоге получается прозрачное окно на котором виден лишь нарисованный на нём фокусрект. Это будет медленнее.
Изображение

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 20.06.2007 (Ср) 23:07

keks-n писал(а):Не надо его там так рисовать.
Почему не нада там рисовать ? что в этом плохого?

keks-n писал(а):Создаёшь отдельную форму. Ставишь ей габариты экрана. Далее - через Begin(End)Path и SetWindowRgn(см. API Guide). Фишка в отрисовке, когда идёт запись патча. В итоге получается прозрачное окно на котором виден лишь нарисованный на нём фокусрект. Это будет медленнее.

Это будет правильнее ?
А вот скорость отрисовки очень важна!
No comments ...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 23

    TopList