|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.01.2013, 10:03 | #1 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Прозрачность в WinApi, применительно к VBA
Возник вопрос: кто-нибудь работал с прозрачностью в WinApi применительно к VBA? Какие методы надо использовать?
|
16.01.2013, 12:00 | #2 |
Пользователь
Регистрация: 14.09.2010
Сообщений: 68
|
Доброго времени суток!
http://excelvba.ru/code/Transparency Посмотрите вот здесь... Вообще весьма полезный ресурс |
17.01.2013, 08:20 | #3 | |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Цитата:
В принципе, даже построение удалось сделать: определяю дескриптор окна: Код:
Код:
Ну и в конце произвожу построение сектора, по установленным координатам: Код:
1. Плохое определение координат сектора. Что я имею в виду? Я имею в виду то, что если прокрутить форму Access вниз и вновь нарисовать сектор его координаты примут значения другие...а хотелось бы, чтобы координаты были жестко привязаны к форме и не изменялись при ее прокрутке. 2. При выходе сектора за область окна экрана происходит его обрезание. Тут видимо нужно как-то реагировать на изменение размеров окна приложения и вызывать обновление (refresh). 3. Хотелось бы реализовать прозрачность сектора. Есть метод AlphaBlend...но его применяют для прозрачности рисунков на форме, а у меня объект, созданный с помощью WinApi. |
|
17.01.2013, 08:57 | #4 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Цитата:
|
|
17.01.2013, 09:38 | #5 | |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Цитата:
Код:
Код:
|
|
17.01.2013, 10:02 | #6 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Не так быстро
Я воздержусь приводить код, но за свои слова отвечаю. Вам надо создать совместимый контекст /CreateCompatibleDС/, создать битмэп нужного размера /CreateCompatibleBitmap/, выбрать его в контексте /SelectObject/ нарисовать Pie на этом новом контексте, а не на контексте формы, как пытались сделать Вы. И вот только после этого /AlphaBlend/. И кроме того, еще должен быть рисунок/маска. Вообщем принцип, как у /DrawIcon/. И еще бы посоветовал не делать синонимы alias Api-функций типа CreateCompatibleDC >> apiCreateCompatibleDC. Конечно это дело хозяйское, но я бы все апи-декларации забил бы в TLB c помощью midl, и подключал бы через References в VB/VBA. |
17.01.2013, 10:59 | #7 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Ну давайте по порядку
Код:
|
17.01.2013, 11:28 | #8 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Код:
|
18.01.2013, 08:02 | #9 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
|
18.01.2013, 08:21 | #10 |
Пользователь
Регистрация: 11.12.2012
Сообщений: 71
|
Сделал вот так:
Код:
Последний раз редактировалось fyedor; 18.01.2013 в 08:23. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
WinApi рисование в VBA | Desha | Помощь студентам | 5 | 05.12.2012 12:32 |
Прозрачность в ie | WennY | HTML и CSS | 1 | 26.08.2012 17:13 |
Различие кода mfc и WinApi(mfc ручками набили, а WinApi автоматически с генерировался!! нужно явное отличие, не могу найти) | Артём1991 | Помощь студентам | 0 | 25.03.2012 17:13 |
Прозрачность | digital-stream | Общие вопросы Delphi | 1 | 14.11.2011 21:03 |
Ошибка с SetLength применительно в PChar | Celestia | Общие вопросы Delphi | 7 | 09.04.2011 06:42 |