Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Прозрачный PictureBox

40K
20 июня 2008 года
Alex S
1 / / 20.06.2008
Пожалуйста помогите, очень нужно:confused:
Вообще результат которого хочу добиться выглядит так:
К примеру на форме стоит PictureBox, с изображением. Я переношу в него файл и на этом PictureBox-е появляется иконка файла... Вообщем как сделать прозрачными пиксели с указанным цветом?
296
21 июня 2008 года
Virtuoso
331 / / 31.07.2005
Знаю только как сделать прозрачным цвет на всей форме, а не отдельно на PictureBox. Ну можно конкретно какой-о цвет использовать только для фона этого бокса.
Код:
Option Explicit
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private 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_COLORKEY = &H1
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)

Private Const CLR_Fon = &HFF8080

Private Sub Form_Load()
    SetTransparent Me.hWnd, 0, CLR_Fon
End Sub

Public Sub SetTransparent(hWnd As Long, Layered As Byte, ID_Color As Variant)
    Dim Ret As Long
    Ret = GetWindowLong(hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong hWnd, GWL_EXSTYLE, Ret
    SetLayeredWindowAttributes hWnd, ID_Color, Layered, LWA_COLORKEY
End Sub
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог