Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Прозрачность окон WINDOWS Добавлено: 27.11.08 23:59  

Автор вопроса:  Mc.WOLF
Никто не пробывал сделать окна Windows прозрачными?
Я только не знаю как! Подскажыте пожалуйста!

Ответить

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

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



Вопросов: 71
Ответов: 112
 Web-сайт: www.werbersoft.ru
 Профиль | | #1
Добавлено: 28.11.08 01:09
Вот этот код пиши в модуль:

  1. Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  2. Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  3. Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  4. Const GWL_EXSTYLE = (-20)
  5. Const WS_EX_LAYERED = &H80000
  6. Const LWA_ALPHA = &H2
  7.  
  8. Public Sub SetTransparent(hwnd As Long, Layered As Byte)
  9.     Dim Ret As Long
  10.     Ret = GetWindowLong(hwnd, GWL_EXSTYLE)
  11.     Ret = Ret Or WS_EX_LAYERED
  12.     SetWindowLong hwnd, GWL_EXSTYLE, Ret
  13.     SetLayeredWindowAttributes hwnd, 0, Layered, LWA_ALPHA
  14. End Sub


А вызываешь его так (пример):

SetTransparent Form1.hwnd, 255 'вместо числа в конце строки подставляй целое число от 0 (форма полностью исчезнет) до 255 (форма будет полностью видна)

Удачи! :-))

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 28.11.08 01:11
SetLayeredWindowAttributes

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 28.11.08 01:12
аперидил :)

Ответить

Номер ответа: 4
Автор ответа:
 Mc.WOLF



Вопросов: 26
Ответов: 84
 Профиль | | #4 Добавлено: 28.11.08 15:05
Спасибо что помогли но, я это и так знал. Но мне нада прозрачность ВСЕХ ОКОН В WINDOWS???

Ответить

Номер ответа: 5
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #5
Добавлено: 28.11.08 18:18
Но мне нада прозрачность ВСЕХ ОКОН В WINDOWS???
Нет, тебе не нада))
А вообще, бери, да выставляй прозрачность каждому окну.

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 28.11.08 23:58
Я делал :) Офигенно выглядит :)

Ответить

Номер ответа: 7
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 30.11.08 19:36
Sharp, какой уровень прозрачности? работать не мешает?

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 30.11.08 20:34
85% симпатичнее всего выглядит

Ответить

Номер ответа: 9
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #9 Добавлено: 01.12.08 14:11
Кто-то может предложить что-то умнее чем это?)
  1. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  2. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  3. Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  4. Private Declare Function apiGetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long
  5. Private Declare Function apiGetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
  6. Dim H As Long
  7. Dim R As Long
  8. Dim T As Long
  9. Private Sub Form_Load()
  10. T = 200
  11. H = apiGetDesktopWindow()
  12. H = apiGetWindow(H, 5)
  13. Do While Not H = 0
  14. R = GetWindowLong(H, -20)
  15. R = R Or &H80000
  16. SetWindowLong H, -20, R
  17. SetLayeredWindowAttributes H, 0, T, &H2
  18. H = apiGetWindow(H, 2)
  19. Loop
  20. End Sub

Ответить

Номер ответа: 10
Автор ответа:
 Vitaliy



Вопросов: 4
Ответов: 10
 Профиль | | #10 Добавлено: 06.12.08 23:36
Ребята, а подскажите пожалуйста, как сделать так, чтобы элементы расположенные на форме не становились прозрачными вместе с формой???

Ответить

Номер ответа: 11
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #11 Добавлено: 07.12.08 03:23
Есть у кого-нибудь пример поддержки Aero Висты на VB6 или это только в дэльфи возможно.

Ответить

Номер ответа: 12
Автор ответа:
 Mc.WOLF



Вопросов: 26
Ответов: 84
 Профиль | | #12 Добавлено: 07.12.08 04:55
РЕАЛЬНО СПАСИБО ОЧЕНЬ ТЕБЕ @lex

Ответить

Страница: 1 |

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



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