Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Any) As Long 任务栏的句柄=FindWindow("Shell_TrayWnd", 0&)
form1.frmOption ExplicitPublic saveDc As Long Public hDestDc As Long Public nWidth As Long Public nHeight As Long Public hsaveBmp As Long Public hformBmp As Long Public yLeft, yTop As IntegerPrivate Sub Form_Load()
End SubPrivate Sub Form_Paint() Start End SubPrivate Sub Form_Resize() Start End SubPrivate Sub Form_Unload(Cancel As Integer)
DeleteObject hsaveBmp DeleteDC hDestDc
End SubPrivate Sub Timer1_Timer() If Form1.Left <> yLeft Or Form1.Top <> yTop Then
Form_Paint
End If
End Sub************************* Module1.basPublic Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Public hDestDc As Long
Public nWidth As Long
Public nHeight As Long
Public hsaveBmp As Long
Public hformBmp As Long
Public yLeft, yTop As IntegerPrivate Sub Form_Load()
nWidth = Form1.ScaleWidth
nHeight = Form1.ScaleHeight
hDestDc = GetDC(0)
saveDc = CreateCompatibleDC(hDestDc)
hsaveBmp = CreateCompatibleBitmap(hDestDc, ScaleX(Screen.Width, 1, 3), ScaleY(Screen.Height, 1, 3))
SelectObject saveDc, hsaveBmp
BitBlt saveDc, 0, 0, ScaleX(Screen.Width, 1, 3), ScaleY(Screen.Height, 1, 3), hDestDc, 0, 0, vbSrcCopy
Show
End Sub
Private Sub Start()
nWidth = Form1.ScaleWidth
nHeight = Form1.ScaleHeight
BitBlt Form1.hdc, 0, 0, nWidth, nHeight, saveDc, ScaleX(Form1.Left, 1, 3) + 4, ScaleY(Form1.Top, 1, 3) + 23, vbSrcCopy
End SubPrivate Sub Form_Paint()
Start
End SubPrivate Sub Form_Resize()
Start
End SubPrivate Sub Form_Unload(Cancel As Integer)
DeleteObject hsaveBmp
DeleteDC hDestDc
End SubPrivate Sub Timer1_Timer() If Form1.Left <> yLeft Or Form1.Top <> yTop Then
Form_Paint
End If
End Sub*************************
Module1.basPublic Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long