Страница: 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):
rawStateA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpDrawStateProc As Long, ByVal lParam As Long, ByVal wParam As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal flags As Long) As Long
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
и все рулит!