有两个form,form1中显示动态影像,form2设置为透明并且始终显示在form1上面,可是每次form2显示后,form1中的影像就变的很迟缓,form2隐藏后,影像变为正常。
如果在form1上显示另一个模式窗体,影像也是正常的。不知道是不是form2设置透明的原因。
下面是form2透明的代码。Option Explicit
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) 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 LongPublic Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = (-20)
Public Const LWA_ALPHA = &H2
Public Const LWA_COLORKEY = &H1
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPublic Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const HWND_TOPMOST = -1
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal Cx As Long, ByVal Cy As Long, ByVal wFlags As Long) As LongPrivate Sub Form_Load() Dim new As Long   SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE   new = GetWindowLong(Me.hwnd, GWL_EXSTYLE)   new = new Or WS_EX_LAYERED        SetWindowLong Me.hwnd, GWL_EXSTYLE, new   SetLayeredWindowAttributes Me.hwnd, &H0, 0, LWA_COLORKEYEnd Sub
窗体透明色设置为黑色。