>>>>Yes, that's exactly what I mean.
>>>>
>>>>After you prepare your loBMP GDI+ object, you may draw directly on the surface using the HWND Graphics.
>>>>
>>>>
>>>>Something like this:
>>>>
>>>>
loGfx = .Graphics.FromHWND(Thisform.RealHWND)
>>>>loGfx.DrawImage(loBmp, 0, 0)
>>>>
>>>>
>>>>
>>>>This means that you'll create your bitmap first,and only whenfinished, it will be sent to the screen, CAPICHE ???
>>>>
>>>>Some people also call this as a DoubleBuffering technique.
>>>
>>>Hi Cesar,
>>>
>>>Far away from understanding any of GdiPlusX inner workings, but will sure try this.
>>>
>>>Thank you for all your help
>>>Sergio
>>
>>
>>This is simple to understand:
>>
>>When you obtain the GFX handle to draw in the Screen, every time that you use this object to draw anything, the screen will be updated, and you know that this takes some time...
>>
>>My other suggestion is that you create another bitmap, and do all your drawings in it. Only when you're finished drawing, you send (draw) your whole bitmap only once in the screen.
>
>I understood that Cesar.
>
>How about ImageCanvas;
>Is this doublebuffering already implemented there or it would make difference if I created bitmap this way, and then dump it all together on surface of ImageCanvas using single call like ;
>
>
>.DrawImage(loBmp, 0, 0)
>
>
>Or this would be tripple-buffering :))
ROFL
Nope !
The ImgCanvas already does it.
It creates a Bitmap object, and everytime you send a command to the ImgCanvas.oGfx, only the offline bitmap is updated.
At the end of this process, the ImgCanvas retrieves the PictureVal and updates the ImageObject. If the Canvas had to update itself on every call to the oGfx object... it would be really sloooooooow