DC 应该随用随获得和释放,另外,你的时间间隔是多少,不能太短,你的图像太大了!最好不要全部复制
Private Sub Form_Load()Me.ShowEnd SubPrivate Sub Timer1_Timer()Dim rc As Boolean
dc2 = GetDC(Form1.Picture2.hwnd)
dc = GetDC(Form1.hwnd)
BitBlt dc2, 0, 0, 1024, 768, dc, 0, 0, vbSrcCopy
rc = ReleaseDC(Picture2.hwnd, dc2)
rc = ReleaseDC(Form1.hwnd, dc)
Text1.Text = rcEnd Sub

解决方案 »

  1.   

    这样写!
    同时把Timer的时间间隔调小点(100足以)private ScrDC as long
    private dc2 as longPrivate Sub Form_Load()Me.Show
    dc2 = GetDC(Form1.Picture2.hwnd)
    ScrDC=GetDC(GetDeskTopWindow)End Subprivate sub form_unload()
    Call ReleaseDC(Picture2.hwnd, dc2)
    Call ReleaseDC(GetDeskTopWindow,ScrDC)end subPrivate Sub Timer1_Timer()
    BitBlt dc2, 0, 0, 1024, 768, GetDC(0), 0, 0, vbSrcCopyEnd Sub
      

  2.   

    不小心写错了,是:
    Private Sub Timer1_Timer()
    BitBlt dc2, 0, 0, 1024, 768, ScrDC, 0, 0, vbSrcCopyEnd Sub
      

  3.   

    去掉timer后改用子程序循环就好了,真奇怪。可能是timer的bug吧另外,DC没有及时释放会有什么不好的影响吗?