gdi32.dll: распоряжаться объектами - PullRequest
0 голосов
/ 22 октября 2018

Я работаю в vb6 с gdi32.dll.В моем бланке есть коробка цен, где я рисую некоторый прямоугольник в соответствии с данными из модели данных для визуализации.

ret = Rectangle(Picture1(i).hdc, X1, 0, x2 , 50)

На этом Picturebox хабе реализовал mouseMouve () - Слушатель, чтобы отрегулировать Прямоугольники движением мыши.Этот слушатель вызывает мою функцию для рисования:

ret = Rectangle(Picture1(0).hdc, 0, 0, Picture1(0).Width, Picture1(0).Height)

ret = Rectangle(Picture1(i).hdc, X1, 0, x2 , 50)

Таким образом, каждый раз, когда позиция мыши изменяется, печатается 2 новых прямоугольника - один прямоугольник-колдун перекрашивает всю область Picturebox с цветом фона, а другой - для визуализации вспомогательных данных.

Проблема в используемой памяти.Когда я использую мышь, чтобы активировать данные, она будет увеличиваться в полной памяти и замедлять работу приложения.

Поэтому у меня вопрос, есть ли способ удалить / удалить старые прямоугольники перед рисованием новых?

...