loads
یک شنبه 11 دی 1384, 13:51 عصر
سلام 
 
 آیا کدی هست که بشه یه رنگ بخصوصی رو از روی فرم حذف و اونو به صورت TRANSPARENT در آورد
 حتی اگر خود فرم باشه 
 متشکرم از همه
حامد مصافی
دوشنبه 12 دی 1384, 01: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, 09:03 صبح
سلام 
 حامد جان مثل اینکه یادت رفته من مبتدی هستم و تازه اول راه . اگه بخوام مثلا رنگ سبز رو از فرم 
 حذف کنم کجای این کد باید وارد کنم .
  مرسی
حامد مصافی
دوشنبه 12 دی 1384, 18:52 عصر
سلام
کد فوق رو در قالب یک ماژول ذخبره کنید
و به این شکل فراخوانیش کنید
ColorKey me.hwnd, vbGreen
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.