怎么不对,说明白一点,多谢
(我用BitBlt可以将所画图形显示在picturebox上,说明用法没问题)

解决方案 »

  1.   

    BitBlt好像只能用于内存(包括虚拟内存)中的图片!
      

  2.   

    BitBlt VB声明 
    Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (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 
    说明 
    将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容 
                       ↑↑↑↑↑↑↑↑↑↑↑↑
      

  3.   

    to: zyl910(910:分儿,我来了!) 
    有没有看我的代码,
    lHdc = CreateCompatibleDC(Printer.hdc)
    BitBlt Printer.hdc,0,0,printer.scalewidth, printer.Width, lHdc, 0, 0, vbSrcCopy
    这难道是不兼容吗
      

  4.   

    说不定你的scalewidth 或者 scaleheight 不相同。
    具体你可以调用devicecaps的API函数来查看。
      

  5.   

    BitBlt是专门为了显示而构造的,无法将它选进与打印机兼容的内存设备环境中。如果打印位图,可以使用DIB.
      

  6.   

    Printer对象是一个"与设备无关"的图片空间,Bitblt是用于"与设备有关"的"位块传输"。故您无法得到预期的结果。可先将图像Bitblt至PictureBox,然后
    set Picture1.Picture=Picture1.Image'这一步不能省略!
    Printer.PaintPicture Picture1.Picture,0,0
    Printer.EndDoc
      

  7.   

    同意 505(五五) Printer对象是一个"与设备无关"的图片空间,Bitblt是用于"与设备有关"的"位块传输"。故您无法得到预期的结果。
      

  8.   

    试一试StretchDIBits,我记得它好像支持 设备有关位图、设备无关位图 之间的转化
    ====================================================================
    StretchDIBits VB声明 
    Declare Function StretchDIBits Lib "gdi32" Alias "StretchDIBits" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long 
    说明 
    将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景。这个函数在设备场景中定义了一个目标矩形,用于接收位图数据。它也在DIB中定义了一个源矩形,以便从中提取数据。根据设备场景的StretchBlt模式(由SetStretchBltMode函数决定),源矩形会根据需要调整,以便符合目标矩形的要求 
    返回值 
    Long,如函数执行成功,返回欲复制的扫描线的数量;如返回常数GDI_ERROR,表示出错 
    参数表 
    参数 类型及说明 
    hdc Long,一个设备场景的句柄。该场景用于接收位图数据 
    x,y Long,用逻辑坐标表示的目标矩形的起点 
    dx,dy Long,目标矩形的宽度及高度,以逻辑坐标表示 
    SrcX,SrcY Long,用设备坐标表示的源矩形在DIB中的起点 
    wSrcWidth,wSrcHeight Long,源矩形的宽度与高度,用设备坐标表示。如其中有一个参数的符号(指正负号)与对应的目标参数不符,位图就会在对应的轴上作镜像转换 
    lpBits Any,指向一个缓冲区的指针。这个缓冲区包含了以DIB格式描述的位图数据;这种格式是由lpBitsInfo指定的 
    lpBitsInfo BITMAPINFO,对lpBits DIB的格式和颜色进行描述的一个结构 
    wUsage Long,下述常数之一 
    DIB_PAL_COLORS 颜色表是一个整数数组,其中包含了与目前选入hdc设备场景的调色板相关的索引 
    DIB_RGB_COLORS 颜色表包含了RG颜色 
    dwRop Long,欲进行的光栅运算