Does anybody know if it is possible to paint Windows Controls
(Button, TextBox, etc.) onto an arbitrary image surface.
For example, I have something like this in Java:
Graphics grfx = Graphics.FromImage(myImage);
grfx.setScale(2, 2);
button.paint(grfx);
The result is a button drawn twice its size.
What I want to do is to be able to take any Windows Control and be able to render it onto an arbirtrary Graphics object that I create. For example, if I set the scale of the graphics object by 2x, then the Windows Control should appear 2x its size. If I rotate the Graphics object, then the Windows Control will appear rotated. Same goes for setting the clip bounds on the Graphics object.
In other words, I want to render Windows Controls into my
own controled UI environment, where I control the
transformation. I would also like to pass events to
those controls.
I don't want to attach the Windows Control to any parent (Form). I want to simulate all the paint events (messages) and mouse events myself. I guess what I am asking is how do the internals of the GDI+ renderer work. Who sends a paint message to a Control? What do I have to do to send paint messages? Let's say I have a Graphics object that I obtained from an image, how can I make the control paint itself on that Graphics object
BTW, I tried subclassing the Button, and calling base.OnPaint(), but that doesn't seem to work for more complex Forms such as TextBoxes or containers.
thanks..
--viktor