43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
1 | |
Как из hdc перенести изображение в StdPicture04.10.2013, 17:35. Показов 1894. Ответов 18
Метки нет Все метки)
(
Перелопатил уже море страниц в интернете, но не нашёл не 1 решения........
Надо чтоб конечный результат можно было применить так pic.Picture = Img Интересует ток такой вариант.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
04.10.2013, 17:35 | |
Ответы с готовыми решениями:
18
BitBlt. Скопировать изображение сначала из SecondMemhdc в Memhdc, а затем из него в hdc Как по имеющемуся handle'у получить stdPicture? Как скопировать HBITMAP в HDC ? Как узнать HDC минимизированного окна? |
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
04.10.2013, 17:47 [ТС] | 3 |
0
|
Модератор
|
||||||
04.10.2013, 17:55 | 4 | |||||
![]() Решение
1
|
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
04.10.2013, 19:54 [ТС] | 5 |
Всё сдался, в hdc хранится не 1 изображение похоже, все функции что я нашёл по получению
HBITMAP загоняют ток фоновый рисунок с самого первого hdc независимо от того какие слои я накладывал сверху. Интересно как бы функционировал такой контрол если его перетягивать мышкой с места на место. Точнее отображал что под ним ![]() Так то сделать прозрачный контрол рисунком по моему не проблема, надо ток отслеживать мышь и работать с координатами кликов ![]()
0
|
Модератор
|
|
04.10.2013, 23:15 | 6 |
![]() Решение
В hdc Хранится только один хендл растра.
Растр можно из hDc получить через GetObject Вот небольшой пример с "виртуальными" контролами. Правда это только в качестве примера, в реальности отрисовку можно оптимизировать, перерисовывая только нужные зоны, но и так быстро работает и главное без мерцаний. Autoredraw должен быть в False
1
|
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
06.10.2013, 18:23 [ТС] | 7 |
Как я понял ты при перемещение объекта полностью перерисовываешь всю форму исключая перемещаемый объект?
По моему эт жесть хотя я другого способа сам не вижу ![]()
0
|
Модератор
|
|
06.10.2013, 18:30 | 8 |
Нет в этом примере я все перерисовываю, т.к. это пример дабы показать тебе что такое двойная буферизация, и заморачиваться с вычислениями перерисовываемых зон я не стал, поэтому я написал -
Делай на основе контролов, тогда Windows все области за тебя вычислит, тебе нужно только будет подрисовывать.
0
|
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
||||||
06.10.2013, 18:35 [ТС] | 9 | |||||
Есть идея не знаю ток стоит браться или не прокатит, делать компоненты на основе диалоговых окон?
применяя к ним.
0
|
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
06.10.2013, 18:40 [ТС] | 11 |
Блин такое впечатление что майкрасофт спецом всё это так сделала
![]()
0
|
Модератор
|
|
06.10.2013, 18:44 | 12 |
Нет, это было бы избыточно, если бы дочерние окна были слоеными. Прозрачными их можно сделать элементарно. А вот если попробывать сделать прозрачным родительское окно, не прибегая к слоеным окнам, то это становится доволно-таки нетривиальной задачей.
0
|
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
06.10.2013, 18:47 [ТС] | 13 |
А вот с этого поподробнее
![]() Надеюсь это будет что то под тип прозрачности по 1 цвету без всяких трабл )
0
|
Модератор
|
|
06.10.2013, 18:50 | 14 |
Я тебе скидывал примеры, с прозрачным PictureBox'ом. Рисуешь как хочешь. Также можно поставить стиль WS_EX_TRANSPARENT, тогда ClipControls можно оставить True.
0
|
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
06.10.2013, 18:58 [ТС] | 15 |
0
|
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
06.10.2013, 19:14 [ТС] | 17 |
Я знаю, просто сейчас методом тыка нашёл )
Добавлено через 6 минут И тут лом в колёса, AlphaBlend не видит эту прозрачность ![]() Блин народ же как то рисует анимацию с эффектами теней и тд которая по экрану бегает.
0
|
43 / 43 / 3
Регистрация: 18.12.2011
Сообщений: 559
|
|
06.10.2013, 20:11 [ТС] | 19 |
Блин и чё я раньше на это не обратил внимание
![]() Так даже проще чем с AlphaBlend, просто менять фоновые картинки как реакция на событие. Добавлено через 21 минуту Ага размечтался, с миди это не работает так как нет hdc, попробовал с помощью GetDC но тож не прокатывает, форма тупо невидимой становится. Так же у миди нет авторедрав и рефрешь...
0
|
06.10.2013, 20:11 | |
Помогаю со студенческими работами здесь
19
Как сделать Picture1.hDC динамичным?
Как сохранить содержимое HDC в графический файл?
Изменить размер StdPicture
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |