View Full Version : شفاف بودن فرم در زمان اجرا
mahdyeh
شنبه 11 فروردین 1386, 18:27 عصر
سلام
آیا میشود برای form ها در vb 6.0 دستوری را نوشت که در زمان اجرا فقط عناصر آن قابل رویت باشد . و خود form ( زمینه ) دیده نشود ؟
حامد مصافی
شنبه 11 فروردین 1386, 22:01 عصر
کد زیر رو در یک ماژول بچسبانید
Rem Hamed Masafi
Rem Ineed:
' No Module !
Option Explicit
'##ModelId=43DEADE70186
Private Const GWL_EXSTYLE = -20
'##ModelId=43DEADE70196
Private Const LWA_COLORKEY = 1
'##ModelId=43DEADE70198
Private Const LWA_ALPHA = 2
'##ModelId=43DEADE701A6
Private Const WS_EX_LAYERED = &H80000
'##ModelId=43DEADE701B6
Const WS_EX_NOINHERITLAYOUT = &H100000
'##ModelId=43DEADE701C5
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'##ModelId=43DEADE701E5
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
'##ModelId=43DEADE701F6
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal cKey As Long, ByVal bAlpha As Long, ByVal dwFlags As Long) As Long
'##ModelId=43DEADE70232
Public Sub ColorKey(hWnd As Long, lColor As Long)
Dim OldLong As Long
OldLong = GetWindowLong(hWnd, GWL_EXSTYLE)
Call SetWindowLong(hWnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYERED Or WS_EX_NOINHERITLAYOUT)
Call SetLayeredWindowAttributes(hWnd, lColor, 0, LWA_COLORKEY)
End Sub
و در رویداد شروع فرم کد زیر رو ...
Private Sub Form_Load()
BackColor = &HFF00FF
ColorKey hWnd, &HFF00FF
End Sub
به همین سادگی
romina2006
شنبه 11 فروردین 1386, 22:17 عصر
Private Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
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 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
Dim Retval As Long
Private Sub Form_Load()
Me.BackColor = 16750950
Retval = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Retval = Retval Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Retval
SetLayeredWindowAttributes Me.hWnd, 16750950, 0, LWA_COLORKEY
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.