我想用bitblt在一个picturebox中画出多条曲线,可是只能显示一条线在画面上,求解决思路~~

解决方案 »

  1.   

    参阅这个:
    http://download.csdn.net/detail/veron_04/2368159
    多条曲线就是多个数组中的数据绘制即可
      

  2.   

    bitblt是贴图用的, 不是用来画线的.
    你贴了后面的当然就覆盖了前面的.
    除非你用transparentblt透明贴图才行.
      

  3.   

    在picturebox中画多天曲线并不需要使用BitBlt,除非你想使用绘图缓冲你可以直接在picturebox中绘画即可
      

  4.   

    兄弟,要活学活用
    你一次性的在内存中绘制好,在BitBlt过来,怎么会覆盖?
      

  5.   

    1.曲线都是用多条直线模拟的,直接用line画即可
    2.如果你想用bitblt画的话,把背景设为白色,bitblt最后一个参数设为&H660046
      

  6.   

    搞错了。
    2.如果你想用bitblt画的话,把背景设为白色,bitblt最后一个参数设为&H8800C6
    即SRCAND
      

  7.   

    谢谢楼上几位的指点,现在已经用bitblt的方法画出多条线了,但是海存在一个问题,比如说我同时画10条,20条线,刚开始时画线速度正常,一段时间后就会发现画线速度变慢了,是设置的内存不够大?
    不知道这个问题该怎么解决了...
      

  8.   

    就是bitblt()弄了十几个啊...10个以下的时候好像不存在画一会变慢的情况
      

  9.   

    1.绘图代码不要放到paint事件中执行
    2.把picturebox的autoredraw设置为true
      

  10.   

    继续....
    我通过movetoex,lineto在内存画线后,用bitblt复制到picturebox上,因为要bitblt多条曲线,所以想给不同的曲线使用不同的颜色.我用createpen创建画笔的办法,发现只能改变画笔的线型和粗细,颜色改变不了啊...
    求大神指导~~
      

  11.   

    Public Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long可以指定笔的颜色
      

  12.   

    试过了,只要在内存里lineto操作,然后从内存里bitblt到picturebox,颜色属性就不起作用
      

  13.   

    最根本的方法就是数据运算,用 GetBitmapBits 取得数据,后面的就自己计算,再用 SetBitmapBits 把算好的数据放回去,这样什么效果都可以做,从点阵、矢量、三维都可以实现,但关键在于你的图形理论和数学知识是否达到要求。
      

  14.   


    那肯定是你没有使用selectobject,将笔选到内存设备缓冲区