Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / прозрачность формы / 6 сообщений из 6, страница 1 из 1
22.05.2011, 09:30
    #37273084
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прозрачность формы
В ВБА она существует?
Пробую так:
Код: plaintext
1.
2.
3.
4.
5.
Private Sub UserForm_Initialize()

'свойствj Opacity - в диапазоне от 0.0 (полная прозрачность) до 1.0 (полная непрозрачность)
Me.Opacity =  0 . 83 

End Sub
Облом
Спасибо
...
Рейтинг: 0 / 0
23.05.2011, 09:29
    #37273841
MAYAKOV_SV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прозрачность формы
Ципихович ЭндрюОблом
Спасибо
Если бы вы воспользовались поиском по SQL.ru, то нашли ответ.
Я воспользовался поиском и нашел несколько источников с кодом.
Вот что я получил в итоге:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Option Explicit

Const LWA_COLORKEY = &H1
'Const LWA_ALPHA = &H2
Const LWA_ALPHA = &H3
Const GWL_EXSTYLE = (- 20 )
Const WS_EX_LAYERED = &H80000

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 Declare Function GetAncestor Lib "user32" ( _
  ByVal hWnd As Long, ByVal gaFlags As Long) As Long
Private Const GA_PARENT =  1 
Private Const GA_ROOT =  2 
Private Const GA_ROOTOWNER =  3 

'hWnd - манипулятор окна, Layered - степень прозрачности от 0 до 255
Public Sub SetTransparent(hWnd As Long, Layered As Byte)
Dim Ret As Long
'Определяем стиль нужного окна
Ret = GetWindowLong(hWnd, GWL_EXSTYLE)
'Задаём стиль окна как заслоённый
Ret = Ret Or WS_EX_LAYERED
SetWindowLong hWnd, GWL_EXSTYLE, Ret
'Задём степень прозрачности окна
SetLayeredWindowAttributes hWnd,  0 , Layered, LWA_ALPHA
End Sub

Private Sub UserForm_Initialize()
   Dim hWnd As Long
   hWnd = GetAncestor(Frame1.[_GethWnd], GA_ROOT)
   SetTransparent hWnd,  128 
End Sub
...
Рейтинг: 0 / 0
23.05.2011, 09:42
    #37273852
MAYAKOV_SV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прозрачность формы
Да, забыл сказать. Для того чтобы сработала функция для определения нэндла окна:
Код: plaintext
1.
   hWnd = GetAncestor(Frame1.[_GethWnd], GA_ROOT)
На форме нужно разместить фиктивный FRAME и спрятать его как-нибудь.
Благодаря ему определяется HWND окна USERFORM.
Может есть и другие способы, но вот такой только нашел.
...
Рейтинг: 0 / 0
23.05.2011, 10:16
    #37273899
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прозрачность формы
MAYAKOV_SV, спасибо за ответ, посмотрю, а тот выложенный мною в вопросе скрипт но только в ВБ работает????????
...
Рейтинг: 0 / 0
23.05.2011, 10:34
    #37273950
MAYAKOV_SV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прозрачность формы
Ципихович ЭндрюMAYAKOV_SV, спасибо за ответ, посмотрю, а тот выложенный мною в вопросе скрипт но только в ВБ работает????????
Opacity свойства в UserForm на VBA нет.
...
Рейтинг: 0 / 0
23.05.2011, 10:58
    #37273989
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прозрачность формы
MAYAKOV_SV, спасибо, понял!!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / прозрачность формы / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]