初学GDI+,有一问题,TGPGraphics是否每次都要重新创建?例如我想实现这个功能:多个GPImage合成到一个GPImage,最后画到窗体上,我先用TGPGraphics.Create(AGPImage)和DrawImage实现了多个GPImage的合成,然后TGPGraphics.Create(Form.Canvas.Handle)创建了一个新的GPGraphics将这个AGPImage画出来。请问如何只创建一个GPGraphics实现这两次绘制?另外,我的图片合成方法有问题吗?

解决方案 »

  1.   

    楼上你好,我的问题是,在不同的画布上绘图,能否只创建一个TGPGraphics可能我表达的不清楚,你理解的应该是在同一个画布上绘制多次
      

  2.   

    确实是这样的,TGPGraphics只能画一次,所以TGPGraphics也不能全局来用,就是一开始Create后,然后以后再用是不行的
      

  3.   

    呵呵,经过我一天的研究,全局用倒是可以,创建的时候要指定为 AWinControl.Handle 而不是 AWinControl.Canvas.Handle,但仅局限于显示图片也就是DrawImage,如果用画刷什么的好像必须指定成Canvas.Handle
      

  4.   

    TGPGraphics在函数结束它会自动释放它的DC,所以要重新指定,不要指定为AWinControl.Handle ,因为你不知道这个是句柄还是DC