呀,又没人回啊不知zyl910会不会???

解决方案 »

  1.   

    我遇到过同样的问题,可能是StretchBlt函数的执行效率的问题.
      

  2.   

    PaintPicture不是直接用的StretchBlt,用的是BitBlt
      

  3.   

    用SetStretchBltMode把处理方式设为STRETCH_HALFTONE!
    SetStretchBltMode VB声明 
    Declare Function SetStretchBltMode Lib "gdi32" Alias "SetStretchBltMode" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long 
    说明 
    指定StretchBlt 和 StretchDIBits函数的伸缩模式。这种伸缩模式定义了Windows如何对伸缩过程中剔除的扫描线进行控制。对于VB窗体和控件,倘若在API绘图过程中使用这个函数,建议恢复原来的StretchBlt模式 
    返回值 
    Long,上一次伸缩模式的值,零表示失败 
    参数表 
    参数 类型及说明 
    hdc Long,设备场景的句柄 
    nStretchMode Long,新伸缩模式建立在下述任何一个常数的基础上,它们均在API32.TXT文件中得到了定义: 
    STRETCH_ANDSCANS 默认设置。剔除的线段与剩下的线段进行AND运算。这个模式通常应用于采用了白色背景的单色位图 
    STRETCH_DELETESCANS 剔除的线段被简单的清除。这个模式通常用于彩色位图 
    STRETCH_ORSCANS 剔除的线段与剩下的线段进行OR运算。这个模式通常应用于采用了白色背景的单色位图 
    STRETCH_HALFTONE 目标位图上的像素块被设为源位图上大致近似的块。这个模式要明显慢于其他模式 
    注解 
    如果要对伸缩模式有一个更深刻的印象,可想象一下对白色图象中的一条白色细线进行压缩。压缩过程中,像素会从图象中删去。为避免线段消失,在删除它们之前,有必要先对线段中的像素与邻近像素进行AND运算。为达到这个目的,应考虑选用STRETCH_ANDSCANS伸缩模式
     
      

  4.   

    我只用过PaintPicture方法,感觉不是很好,用它将图像缩小后再放大,图像就失真了,丢掉了很多像素,很不理想。
      

  5.   

    To dyx(天火):
    这很正常
    因为这是位图,不是矢量图,更不是照片!