Страница: 1 |
Страница: 1 |
Вопрос: неактивные значки
Добавлено: 20.08.07 16:17
Автор вопроса: sobol
Всем доброго.
Рисую контрол: когда контрол Enable=True, то значки рисую простым способом PaintPicture (значки - stdPicture)
Но, когда контрол Enable=False, то значки должны стать серенькими объемными (короче - недоступными). Вопрос: какими страшными API это делается?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #1
Добавлено: 20.08.07 16:29
Юзай апи: http://kbyte.ru/Refbooks/Show.aspx?id=18&lang=en
Номер ответа: 2
Автор ответа:
sobol
Вопросов: 1
Ответов: 4
Профиль | | #2
Добавлено: 20.08.07 18:15
Тысяча благодарностей - это оно.
(API оказалось не таким страшным, как его малюют - если знать, что нажимать)
Номер ответа: 3
Автор ответа:
sobol
Вопросов: 1
Ответов: 4
Профиль | | #3
Добавлено: 21.08.07 10:36
Однако, нюанс:
если в апи передавать битмап - все в поряде, а если ICON - то ничего не рисует(
Как бы обойти эту засаду? (без иконок с прозрачным фоном не обойтись...)
Номер ответа: 4
Автор ответа:
Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #4
Добавлено: 21.08.07 10:49
GIF
Номер ответа: 5
Автор ответа:
sobol
Вопросов: 1
Ответов: 4
Профиль | | #5
Добавлено: 21.08.07 12:18
С гифами тоже не все просто: одни рисуются нормально, а другие - нет. Похоже, зависит от того цвета, который был помечен как прозрачный (если не белый - то фигня).
И, кроме того, хотелось бы универсальности метода. (Юзверь-то тупой - про гифы не понимает)
Номер ответа: 6
Автор ответа:
sobol
Вопросов: 1
Ответов: 4
Профиль | | #6
Добавлено: 21.08.07 18:01
Алексей прав - все было просто (рисуем из Picture1 в Picture2):
Private Const DST_ICON = &H3
Private Const DST_BITMAP = &H4
Private Const DSS_DISABLED = &H20
......
'для битмапов
DrawState Picture2.hDC, 0, 0, Picture1.Picture, 0, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, DST_BITMAP Or DSS_DISABLED
'для иконок
DrawState Picture2.hDC, 0, 0, Picture1.Picture, 0, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, DST_ICON Or DSS_DISABLED
и все рулит!