Страница: 1 |
Вопрос: Прозрачность | Добавлено: 18.11.03 19:23 |
Автор вопроса: ![]() |
В Windows 2000/XP есть такая фича - прозрачность окон. Так вот! Как задать процент прозрачности для формы? |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ICQ: 151819 Вопросов: 32 Ответов: 110 |
Web-сайт: Профиль | Цитата | #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 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #2 | Добавлено: 18.11.03 19:35 |
А чем (в смысле какой функцией) пользуешься? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 1707975 Вопросов: 8 Ответов: 47 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 19.11.03 04:29 |
Когда я меняю прозрачность мне говорят: Мол 6 еррор (переполнение)! |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 5 Ответов: 57 |
Профиль | Цитата | #4 | Добавлено: 20.11.03 22:25 |
У скролла есть свойство .Max, т.е. максимальное значение. Установи его =255, а то по умолчанию там страшенное число стоит, а в SetTranparent коэфф. прозрачности может быть только 0-255. А вообще, если надо поменять прозрачность только своей формы, то лучше не куролесить, а делать так SetTransparent form1.hwnd, 255 - hscroll1.value |
Страница: 1 |
|