Автор вопроса: Боцман | Web-сайт:Rus-Skipper.narod.ru | ICQ: 295725312
Вообщем специально, что бы было понятно сделал исходник для демонстрации сразу двух примеров, вырезания, сложной формы.
Первый пример мне и непонятен, как читаются из картинки данные региона и второе как их вообще туда вставили? Вопрос не имеет принципиального значения, сам использую вообще другой метод, но ведь чудес нет, просто это загадка на которую я немогу найти ответ. Помогите пожалуста разобратся с этим чудовищем. Почему предлагаю скачать исходник? Так из за картинки, в ней вся соль, я имею ввиду PicHiddenData.image в коде.
Код не большой, первый вариант всего три строчки.
http://rus-skipper.narod.ru/raznoe/Region.zip
а может не стоит париться и просто делать прозрачным определенный цвет на форме? или принципиально нужно разобраться?
Option Explicit
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY As Long = &H1
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Public Sub SetTranspColor(ByVal hWnd As Long, ByVal color As Long)
Call SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED)
Call SetLayeredWindowAttributes(hWnd, color, 0, LWA_COLORKEY) 'делаем прозрачным цвет color
End Sub
может не стоит париться и просто делать прозрачным определенный цвет на форме?
Это другой подход, и вариантов наверно штук 10, но почему африканец написавший первую часть, смог, а я даже готовое не могу понять? Оставить это как табу?