www.pudn.com > storm > ModDesktop.bas
Attribute VB_Name = "ModDesktop" Public Declare Function GetDesktopWindow Lib "user32" () As Long 'declare API Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private 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 Declare Function StretchBlt% Lib "gdi32" (ByVal hdc%, ByVal X%, ByVal Y%, ByVal nWidth%, ByVal nHeight%, ByVal hSrcDC%, ByVal XSrc%, ByVal YSrc%, ByVal nSrcWidth%, ByVal nSrcHeight%, ByVal dwRop&) Public Const SRCINVERT = &H660046 'set constants Public Const SRCCOPY = &HCC0020 Public Const SRCAND = &H8800C6 Public Const SRCERASE = &H440328 Public Const SRCPAINT = &HEE0086 Public Sub DumpToWindow(TargetBox As Control, change, fliphorizontal As Boolean, flipvertical As Boolean) Dim Desktop As Long 'this will be set the hDc of the desktop Desktop = GetDC(GetDesktopWindow) 'get the hDc of the desktop and put it in the variable 'desktop' ww = Screen.Width / Screen.TwipsPerPixelX 'get screen size in pixels hh = Screen.Height / Screen.TwipsPerPixelY BitBlt TargetBox.hdc, 0, 0, ww, hh, Desktop, 0, 0, change 'copy to form2.picture1 If fliphorizontal = True Then Call FlipPictureHorizontal(frmDesktop.Picture1, frmDesktop.Picture1) 'if requested, flip If flipvertical = True Then Call FlipPictureVertical(frmDesktop.Picture1, frmDesktop.Picture1) 'if requested, flip End Sub Sub FlipPictureHorizontal(pic1 As PictureBox, pic2 As PictureBox) pic1.ScaleMode = 3 'set scale modes pic2.ScaleMode = 3 Dim px% Dim py% Dim retval% px% = pic1.ScaleWidth py% = pic1.ScaleHeight retval% = StretchBlt(pic2.hdc, px%, 0, -px%, py%, pic1.hdc, 0, 0, px%, py%, SRCCOPY) End Sub Sub FlipPictureVertical(pic1 As PictureBox, pic2 As PictureBox) pic1.ScaleMode = 3 'set scale modes pic2.ScaleMode = 3 Dim px% Dim py% Dim retval% px% = pic1.ScaleWidth py% = pic1.ScaleHeight retval% = StretchBlt(pic2.hdc, 0, py%, px%, -py%, pic1.hdc, 0, 0, px%, py%, SRCCOPY) End Sub