Administrator

Administrator

  • Tech Writer
  • 2.2k
  • 1.5m

Drawing Controls (Button, TextBox, etc) onto an Image

Mar 4 2003 12:04 AM
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