Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: неактивные значки Добавлено: 20.08.07 16:17  

Автор вопроса:  sobol
Всем доброго.

Рисую контрол: когда контрол Enable=True, то значки рисую простым способом PaintPicture (значки - stdPicture)

Но, когда контрол Enable=False, то значки должны стать серенькими объемными (короче - недоступными). Вопрос: какими страшными API это делается?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #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-сайт: aleksey.nemiro.ru
 Профиль | | #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 Declare Function DrawState Lib "user32" Alias ";DrawStateA" (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


и все рулит!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам