Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как рисовать API-функциями из VBA?
|
|||
|---|---|---|---|
|
#18+
Стоит задача: средствами VBA создать растровое изображение (на основе заданных данных) и вставить его в документ. В VB можно нарисовать с помощью GDI API-функций, указывая дискриптор (hDC) Form или PictureBox. А потом просто скопировать в Clipboard Form.Image или PictureBox.Image. Но VBA не поддерживает PictureBox, а у UserForm нет свойств hDC и Image Что можно придумать? На чем рисовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2009, 17:31 |
|
||
|
Как рисовать API-функциями из VBA?
|
|||
|---|---|---|---|
|
#18+
litvin44, рисовать на битмапе в памяти. Ключевые слова: CreateCompatibleDC, CreateDIBSection или CreateCompatibleBitmap. В MSForms есть элемент управления Image, у которого есть свойство Picture. Чтобы ему что-то присвоить, нужно объект GDI завернуть в COM-объект. Ключевое слово: OleCreatePictureIndirect. Хинт: VB и VBA обсуждаются в форумах Visual Basic, Microsoft Office, Microsoft Access. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2009, 20:09 |
|
||
|
Как рисовать API-функциями из VBA?
|
|||
|---|---|---|---|
|
#18+
Вот, если это кому интересно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. А я что не в том разделе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 16:24 |
|
||
|
Как рисовать API-функциями из VBA?
|
|||
|---|---|---|---|
|
#18+
litvin44, Ошибки: 1) GetDC() без ReleaseDC(). 2) SelectObject(hCompDC, hCompBM) без запоминания старого битмапа и обратного восстановления его. IMHO, передавать через буфер обмена нехорошо, но это up to you, как говорится. >А я что не в том разделе? Хинт давался для поиска примеров. Но я думаю, что не в том (формально), если поставлен такой вопрос. Другое дело - все привыкли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 17:42 |
|
||
|
Как рисовать API-функциями из VBA?
|
|||
|---|---|---|---|
|
#18+
Бенедикт, об ошибках: 1) А что ставить аргументом ReleaseDC()? Ведь ответ GetDC() используется как аргумент для CreateCompatibleBitmap(), нигде не сохраняется и исчезает из памяти после заверешения подпрограммы 2.1) SelectObject() - там нечего запоминать (нули,черное поле), соответственно и нечего восстанавливать. 2.2) Восствновление перед удалением? 2.3) Запоминание/восстановление имело бы смысл для реального окна. 2.4) Для реального окна: надо изменить его изображение. После восстановления изображение останетсяНЕ измененным Чем нехорошо? Просмотр на форме НЕ нужен. И вообще нет никаких форм. Надо именно скопировать в буфер Потому и привожу свей код, что множество примеров в нете про скриншоты окон, т.е. про другое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 11:43 |
|
||
|
Как рисовать API-функциями из VBA?
|
|||
|---|---|---|---|
|
#18+
litvin441) А что ставить аргументом ReleaseDC()? Ведь ответ GetDC() используется как аргумент для CreateCompatibleBitmap(), нигде не сохраняется и исчезает из памяти после заверешения подпрограммы Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36218928&tid=2160537]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 359ms |

| 0 / 0 |
