Страница: 1 |
Страница: 1 |
Вопрос: Почему он такой большой?
Добавлено: 20.06.09 09:48
Автор вопроса: VβÐUηìt | Web-сайт:
Буфер рисунка. (и без намеков :)). Проблема такова: делаю форме Cls, потом рисую на ней парочку рисуночкофф, копирую в буфер а в нем оказываетя картинка размером 1920x1200 пикселей, тобишь с экран! Как от этого избавиться? Как мне сделать, чтобы размер рисунка на форме совпадал с размером формы? (Реализовывать перерисовку с нуля через опи - кака, слишком много переписывать). И вообще, почему это явление происходит?
Заранее благодарен.
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #1
Добавлено: 20.06.09 14:55
Ну народ! Бред же: если я делаю Cls на форме (AutoRedraw = True), затем рисую на ней что-нибудь маленькое (100х100 пикселей), а затем делаю Clipboard.SetData image, то копировацо должна по идее маленькая картинка размером с форму или меньше. А копируется лабуда размером с экран - как это так?
Номер ответа: 2
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #2
Добавлено: 20.06.09 15:09
напиши багрепорт в майкрософт
Номер ответа: 3
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #3
Добавлено: 20.06.09 15:27
Жесть. А если серьезно, щас покопался, разъяснил глюк: форма с AutoRedraw по ходу создает битмап размером с экран. Можно ли как-нибудь с помощью АПИ сделать его поменьше?
Номер ответа: 4
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #4
Добавлено: 20.06.09 17:16
внутренние параметры и структуры лучше не трогай. видимо придется делать руками обрезание и копирование.
Номер ответа: 5
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #5
Добавлено: 20.06.09 20:31
Так проблема не в копировании. Если бы она была в копировании, я бы не рыпался. Бяка вот в чем. Прога перерисовывается 60 раз в секунду (мелочи всякие). На маленьком буфере (размером с форму), она почти ничего не жрет. А вот на буфере размером с экран, как я указал выше, подобная перерисовка начинает жрать 50% ядра - ужос! Буфер обмена - это так, для пояснения. Если я уменьшу размер этого буфера, то пожираемость ресурсов будет гораздо меньше. Но только вот вопрос как? После Cls гад все равно восстанавливается до размеров экрана. Я думаю, его можно ограничить только кулаком (руками)...
Номер ответа: 6
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #6
Добавлено: 20.06.09 23:42
а что, AutoRedraw нельзя отключить?
Номер ответа: 7
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #7
Добавлено: 21.06.09 08:35
Нет. Тогда весь смысл теряется- перерисовывать все каждый раз, когда форма заслоняется - жрать еще больше будет. Да и дрожание изображения - тоже гадость.