I am trying to create a custom CStatic
control in vc++
and have a few problems.
I originally was just using a CStatic
control with the SS_BLACKRECT
style. This was good for the situation until I needed to display an image over the control on demand.
I figured out all the logistics behind actually drawing the image onto the control but I cant seem to figure out how to do so without interfering with other things.
Basically I want the control to function as a normal CStatic
with the SS_BLACKRECT
style most of the time.
Then I need to be able to call a method that will cause it to draw an image over the control instead. I am doing the drawing using GDI
and have tried it both in the OnPaint()
method and the DrawItem()
method without success. I can get it to draw in the OnPaint()
but when I call the base CStatic::OnPaint()
it draws over my image.
I need to be able to allow it to draw like normal but then just throw an image in on top. When I tried to do it in the DrawItem()
method I had a problem because obviously it was not drawing using the SS_BLACKRECT
style but waiting for me to draw the control like its supposed to.
I guess what I think I'm looking for is one of three things. A way to draw using GDI
after the base OnPaint()
method finishes. A way to have the control draw the default SS_BLACKRECT
style and then OWNERDRAW
the image afterwards. Or the code to mimic the drawing of SS_BLACKRECT
.
The last one might be the easiest but I just don't know all the things I need to set up to draw a CStatic
control like the default DrawItem.
Try calling Default()
in your OnPaint()
handler.
Then, depending on whether you're drawing your image, you can then draw over the top of the standard CStatic
control.