SetROP2 и Windows 7

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

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

drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

SetROP2 и Windows 7

Сообщение drronnie » 28.04.2010 (Ср) 22:41

Господа, помогите с проблемой.
Для рисования области выделения (квадратика) на экране я использую такой код:
Код: Выделить всё
' получаю DC экрана
m_ScreenDC = GetDC(0)
' ставлю режим рисования XOR
SetROP2(m_ScreenDC, R2_NOTXORPEN)
' создаю карандаш
m_Pen = CreatePen(PS_DOT, 1, Color.Gray.ToArgb)
hPenOld = SelectObject(m_ScreenDC, m_Pen)

Рисую квадрат при помощи GDI функции Rectangle, затем снова рисую квадратик (вытираю его), при изменении размера всё повторяю снова.

На работе установлена Windows XP и всё работает нормально. Дома Windows 7 - и рисование происходит медленно (заметно мерцание). :(

Может быть будут какие-либо идеи?
Компиляция - перевод словесного поноса в машинный код.

Samsonov
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 22.04.2010 (Чт) 7:32
Откуда: DC

Re: SetROP2 и Windows 7

Сообщение Samsonov » 27.05.2010 (Чт) 7:11

drronnie писал(а):Для рисования квадратика на экране использую такой код: GetDC, SetROP2, CreatePen, SelectObject, Rectangle. На Windows 7 рисование происходит медленно (заметно мерцание).
Какая-нибудь буферизация вывода используется? Мне показалось, что если применять штатное .NET-средство BufferedGraphics, то мы не только избавляемся от мерцания, но и сводим время отрисовки почти к нулю. А уж как готовый буфер помогает при перерисовке — вообще чудесно.

Правда, я не проверял работу в системах новее WinXP.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList