1.GetDc(0)
3.Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
4.Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long

解决方案 »

  1.   

    【VB声明】
      Private Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long【说明】
      获取指定窗口的设备场景 【返回值】
      Long,指定窗口的设备场景句柄,出错则为0 【备注】
      若窗口所属类具有CS_OWNDC,
      CS_CLASSDC 或 CS_PARENTDC样式,则获取的设备场景属窗口或类专有。vb的窗体和图片框控件也是这种情况,它用该函数取得的结果和控件的hdc属性相同(在autoredraw为FALSE时)。您无须考虑取回的窗体或图片框控件设备场景的默认状态,特别是绘图对象。另外,默认状态随着窗体和控件autoredraw属性的设置而不同。在设备场景释放前您必须回复其状态为初始值。对于没有CS_OWNDC,
      CS_CLASSDC 或 CS_PARENTDC样式的窗口的设备场景,可从通用windows缓存中获取,其状态为默认值。缓存中可用设备场景数量是有限的,因此只要可能就释放设备场景
      用本函数获取的设备场景一定要用ReleaseDC函数释放,不能用DeleteDC
    【VB声明】
      Private Declare Function GetBitmapBits Lib "gdi32" Alias "GetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long【说明】
      将来自位图的二进制位复制到一个缓冲区 【返回值】
      Long,如执行成功,返回位图中的字节数量;零表示失败。会设置GetLastError 【备注】
      虽然这个函数能正常工作,但强烈建议使用与设备无关的位图(GetDIBits)【参数表】
      hBitmap --------  Long,位图的句柄  dwCount --------  Long,欲复制的字节数。如设为零,表示取得位图中的字节数  lpBits ---------  Any,指向容纳位图位的一个缓冲区的指针。注意事先将缓冲区至少初始化成dwCount个字节
    【VB声明】
      Private Declare Function SetBitmapBits Lib "gdi32" Alias "SetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long【说明】
      将来自缓冲区的二进制位复制到一幅位图 【返回值】
      Long,执行成功则返回字节数量,零表示失败 【备注】
      在Win32中,应使用与设备无关位图【参数表】
      hBitmap --------  Long,位图的句柄  dwCount --------  Long,欲复制的字节数量  lpBits ---------  Any,指向一个缓冲区的指针。这个缓冲区包含了为位图正确格式化的位图位
      

  2.   

    5.winsock 控件的 getdata 方法与 peekdata 方法有何异同?
    答:getdata在取出收到的数据以后,不进行缓存的清空;peekdata在收到数据后,将清空缓存!
      

  3.   

    楼上的兄台,应该是getdata清空缓存,peekdata不清空缓存吧.