我的大概想法是
1.在窗体创建时就截取背景
2.在窗体完全加载完后将背景在窗体内显示出来可是,我怎么搞也不成功!唉!~·大家帮帮我呀!

解决方案 »

  1.   

    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Const VK_SNAPSHOT As Byte = &H2C
    Private Sub Form_Initialize()
    Me.Move 0, 0, 500, 200
    keybd_event VK_SNAPSHOT, 1, 0, 0
    Me.AutoRedraw = True
    End SubPrivate Sub Form_Load()
    Me.WindowState = 2
    End SubPrivate Sub Form_Resize()
     Me.Picture = Clipboard.GetData(vbCFBitmap)
    End Sub
      

  2.   

    窗口事件的发生顺序
    1st        Form_Initialize 
    2nd        Form_Load 
    3rd        Form_Resize 
    4th        Form_Activate 
    5th        Form_GotFocus 
    6th        Form_Paint 
    7th        Form_Unload 
    8th        Form_Terminate
      

  3.   

    TO: northwolves(狼行天下)
    这种方法在窗体第一次启动的时候不起作用,只有在第二次启动时,才会把图片加载到FORM或者是你随便找一个地方Ctrl+C一下,也是不能实现将背景在窗体内显示出来的效果
      

  4.   

    这种方法在窗体第一次启动的时候不起作用,只有在第二次启动时,才会把图片加载到FORM
    ----------------------------------------------------------------------------------
    没发现你说的现象,这样稍改一下试试:Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Const VK_SNAPSHOT As Byte = &H2CPrivate Sub Form_Activate()
    Me.WindowState = 2
     Me.Picture = Clipboard.GetData(vbCFBitmap)
    End SubPrivate Sub Form_Initialize()
    Me.AutoRedraw = True
    Me.Move Screen.Width / 2 - 250, Screen.Height / 2 - 100, 500, 200
    keybd_event VK_SNAPSHOT, 1, 0, 0
    End Sub
      

  5.   

    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject 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 Sub Form_DblClick()
    End
    End Sub
    Private Sub Form_Load()
    lHwnd = GetForegroundWindow()
    lHdc = GetWindowDC(lHwnd)
    Me.ScaleMode = 0
    BM = CreateCompatibleBitmap(lHdc, Me.Width, Me.Height)
    SelectObject lHdc, BM
    Me.AutoRedraw = True
    Me.Cls
    BitBlt Me.hdc, -4, -4, Me.Width, Me.Height, lHdc, 0, 0, vbSrcCopy
    Me.WindowState = 2
    End Sub
      

  6.   

    更正以下o  上面是截取窗体的Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject 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 Sub Form_DblClick()
    End
    End Sub
    Private Sub Form_Load()
    lHdc = GetWindowDC(0)
    Me.ScaleMode = 0
    BM = CreateCompatibleBitmap(lHdc, Me.Width, Me.Height)
    SelectObject lHdc, BM
    Me.AutoRedraw = True
    Me.Cls
    BitBlt Me.hdc, 0, 0, Me.Width, Me.Height, lHdc, 0, 0, vbSrcCopy
    Me.WindowState = 2
    End Sub