ورود

View Full Version : حذف یک رنگ از روی فرم



loads
یک شنبه 11 دی 1384, 12:51 عصر
سلام

آیا کدی هست که بشه یه رنگ بخصوصی رو از روی فرم حذف و اونو به صورت TRANSPARENT در آورد
حتی اگر خود فرم باشه

متشکرم از همه

حامد مصافی
دوشنبه 12 دی 1384, 00:21 صبح
Rem Hamed Masafi
Rem Ineed:
' No Module !

Option Explicit

Private Const GWL_EXSTYLE = -20
Private Const LWA_COLORKEY = 1
Private Const LWA_ALPHA = 2
Private Const WS_EX_LAYERED = &H80000
Const WS_EX_NOINHERITLAYOUT = &H100000

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 GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetLayeredWindowAttributes Lib "user32" ( _
ByVal hWnd As Long, _
ByVal cKey As Long, _
ByVal bAlpha As Long, _
ByVal dwFlags As Long) As Long

Public Sub Transpart(hWnd As Long, ByVal TranspartLevel As Byte)
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, 0, TranspartLevel, LWA_ALPHA)
End Sub

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

Public Sub FadeForm(frm As Form, _
Optional FadeIn As Boolean = True, _
Optional Speed As Byte = 1)

Dim I As Long
frm.Enabled = False

frm.Visible = True
If FadeIn Then
Transpart frm.hWnd, 0
For I = 0 To 255 Step Speed
DoEvents
Transpart frm.hWnd, I
Next
Else
For I = 255 To 0 Step -Speed
DoEvents
Transpart frm.hWnd, I
Next
End If
frm.Enabled = True
End Sub



تابع ColorKey همین کار رو می کنه

loads
دوشنبه 12 دی 1384, 08:03 صبح
سلام

حامد جان مثل اینکه یادت رفته من مبتدی هستم و تازه اول راه . اگه بخوام مثلا رنگ سبز رو از فرم
حذف کنم کجای این کد باید وارد کنم .

مرسی

حامد مصافی
دوشنبه 12 دی 1384, 17:52 عصر
سلام

کد فوق رو در قالب یک ماژول ذخبره کنید

و به این شکل فراخوانیش کنید

ColorKey me.hwnd, vbGreen