看你需要从什么地方获得图像,如果是PIctureBox,就是PictureBox的hDC属性,如果是窗口,可以通过API函数GetDC获得hDC

解决方案 »

  1.   

    还可以 自己创建, 用 CreateDC
      

  2.   

    在vb中凡是由handle的控件都后hDC属性,他就是你需要的hsrcdc
    也可以用GetDc(hwnd)获得hdc
      

  3.   

    是从PICTUREBOX里来的,但PICTURE属性没有图片加入。
      

  4.   

    ret = BitBlt(Form1.hDC, 0, 0, Picture1.Width, Picture1.Height, Picture1.hDC, 0, 0, SRCCOPY)
      

  5.   

    你不懂自己添加图象到 Picture 控件里面吗?
    使用 CreateCom???DC 创建兼容 DC
    然后使用 Selectobject hDC,picture.Handle
    就可以获取你的 HDC 了。
      

  6.   

    GetDC VB声明 
    Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long 
    说明 
    获取指定窗口的设备场景 
    返回值 
    Long,指定窗口的设备场景句柄,出错则为0 
    参数表 
    参数 类型及说明 
    hwnd Long,将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC 
    注解 
    若窗口所属类具有CS_OWNDC, CS_CLASSDC 或 CS_PARENTDC样式,则获取的设备场景属窗口或类专有。vb的窗体和图片框控件也是这种情况,它用该函数取得的结果和控件的hdc属性相同(在autoredraw为FALSE时)。您无须考虑取回的窗体或图片框控件设备场景的默认状态,特别是绘图对象。另外,默认状态随着窗体和控件autoredraw属性的设置而不同。在设备场景释放前您必须回复其状态为初始值。对于没有CS_OWNDC, CS_CLASSDC 或 CS_PARENTDC样式的窗口的设备场景,可从通用windows缓存中获取,其状态为默认值。缓存中可用设备场景数量是有限的,因此只要可能就释放设备场景
    用本函数获取的设备场景一定要用ReleaseDC函数释放,不能用DeleteDC
     
    ====================================================================
    GetWindowDC VB声明 
    Declare Function GetWindowDC Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Long) As Long 
    说明 
    获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 
    返回值 
    Long,执行成功为窗口设备场景,失败则为0 
    参数表 
    参数 类型及说明 
    hwnd Long,将获取其设备场景的窗口 
    注解 
    不推荐在vb里使用这个函数。用完后一定要用ReleaseDC函数释放场景
     ====================================================================
    ReleaseDC VB声明 
    Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long 
    说明 
    释放由调用GetDC或GetWindowDC函数获取的指定设备场景。它对类或私有设备场景无效(但这样的调用不会造成损害) 
    返回值 
    Long,执行成功为1,否则为0 
    参数表 
    参数 类型及说明 
    hwnd Long,要释放的设备场景相关的窗口句柄 
    hdc Long,要释放的设备场景句柄 
    注解 
    对那些用CreateDC一类的DC创建函数生成的设备场景,不要用本函数