Доброго времени суток! Пытаюсь сделать программу, которая снимает изображение находящееся за нею. Получил дескриптор десктопа, перенёс изображение на форму. Изображение получилось вместе с самой формой. Как сделать так, чтобы форму было невидно, но в тоже время, чтобы она оставалась в развёрнутом виде. Мне нужно перенести на форму изображение, находящееся за моим окном, не сворачивая его. Так вообще возможно? Пробовал сворачивать, делать скриншот, разворачивать. Выходит некрасиво, мерцает, пробовал менять прозрачность до нуля, делать скриншот, прозрачность восстанавливать до 255, тоже мерцает. Есть какой-нибудь иной способ решения данной проблемы? Пример ниже.
- Код: Выделить всё
Option Explicit
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindowDC 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
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
Private Sub Command1_Click()
Dim DeskDc As Long
Me.Cls
DeskDc = GetWindowDC(GetDesktopWindow())'Получаем дескриптор десктопа
Call BitBlt(Me.hDC, 0, 0, Me.Width, Me.Height, DeskDc, 0, 0, vbSrcCopy)'Переносим изображение десктопа
Call ReleaseDC(GetDesktopWindow(), DeskDc)'Освобождаем контекст
End Sub