Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Прозрачность Добавлено: 18.11.03 19:23  

Автор вопроса:  Magic lantern | Web-сайт: lantern.fatal.ru | ICQ: 1707975 

В Windows 2000/XP есть такая фича - прозрачность окон.

Так вот!

Как задать процент прозрачности для формы?

Ответить

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

Номер ответа: 1
Автор ответа:
 StrikeR



ICQ: 151819 

Вопросов: 32
Ответов: 110
 Web-сайт: www.highlight.ee
 Профиль | | #1
Добавлено: 18.11.03 19:32

Module:

------------

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

Public Const LWA_COLORKEY = &H1

Public Const LWA_ALPHA = &H2

Public Const GWL_EXSTYLE = (-20)

Public Const WS_EX_LAYERED = &H80000

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

-----------------------------------------

Form: ( sozdai eshjo ScrollBar)

--------------

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Dim hnd As Long

Private Sub Form_Load()

hnd = FindWindow("Shell_TrayWnd", vbNullString)

End Sub

Private Sub HScroll1_Change()

SetTransparent hnd, 255 - HScroll1.Value

End Sub

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 18.11.03 19:35

А чем (в смысле какой функцией) пользуешься?

Ответить

Номер ответа: 3
Автор ответа:
 Magic lantern



ICQ: 1707975 

Вопросов: 8
Ответов: 47
 Web-сайт: lantern.fatal.ru
 Профиль | | #3
Добавлено: 19.11.03 04:29

Когда я меняю прозрачность мне говорят:

Мол 6 еррор (переполнение)!

Ответить

Номер ответа: 4
Автор ответа:
 Dima22



Вопросов: 5
Ответов: 57
 Профиль | | #4 Добавлено: 20.11.03 22:25

У скролла есть свойство .Max, т.е. максимальное значение. Установи его =255, а то по умолчанию там страшенное число стоит, а в SetTranparent коэфф. прозрачности может быть только 0-255.

А вообще, если надо поменять прозрачность только своей формы, то лучше не куролесить, а делать так SetTransparent form1.hwnd, 255 - hscroll1.value

Ответить

Страница: 1 |

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



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