Очистка области рисования

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Очистка области рисования

Сообщение Williams » 11.05.2008 (Вс) 0:11

Использую нижеследующий код для вывода картинки на экране:



Код: Выделить всё
Dim g As Graphics = Graphics.FromHdc(hdc)
Dim mypoint As New Drawing.PointF(100, 100)
g.DrawImage(Image.FromFile("myimage.gif"), mypoint)




Как мне очистить область рисования, вернуть её к исходному состоянию?



Спасибо

Atoman
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 109
Зарегистрирован: 01.02.2008 (Пт) 6:36

Сообщение Atoman » 11.05.2008 (Вс) 1:20

g.Clear(Color.White)

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 11.05.2008 (Вс) 2:12

Этот вариант мне не подходит - рисую на рабочем столе, нужно обновить область, а не залить ее цветом.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 11.05.2008 (Вс) 10:31

если область, то только зараее сохраняя исходной изображеие. Если всё, то послать сообщение окну отрефрешиться.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 11.05.2008 (Вс) 16:10

Sebas

Я пробовал использовать

Dim state As Drawing.Drawing2D.GraphicsState = g.Save

рисовать, затем

g.Restore(state)



никакого эффекта - я что-то упускаю?

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 12.05.2008 (Пн) 19:34

Вопрос все еще актуален.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 12.05.2008 (Пн) 21:09

Код: Выделить всё
  Declare Auto Function InvalidateRect Lib "user32" (ByVal hwnd As IntPtr, ByVal Rc As RECT, ByVal B As Boolean) As Boolean

  Public Structure RECT
    Dim Left As Integer
    Dim Top As Integer
    Dim Right As Integer
    Dim Bottom As Integer
  End Structure
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5


Вернуться в Visual Basic .NET

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

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

    TopList