I've found the easiest way to do this is one of two method. I use the first method if there are only a few "base/derived" interactions I want to show. I use the second method if I need to show a lot of intereactions or if the first method just isn't clear enough.
Method 1
1. Create a sequence diagram and drag your derived class onto it
2. Create a message to the derived class (or a self-message, if appropriate), showing an invocation of the Paint() method.
3. Inside the Paint() method, show a message indicating the bitmap will be painted. Depending upon the level of detail you need to illustrate, you could show the actual method calls that accomplish this, or you could just create a "plain text" self-message, something like "Paint bitmap on the button".
4. Again inside the Paint() method, show a self-message with the text something along the lines of "base.Paint()", indicating an invocation of the base Paint() method.
Method 2
1. Drag both the base class and the derived class onto a sequence diagram.
2. Instead of self-messages for the invoked base class methods, show messages going from the derived class to the base class.
Method 2 is a little more "theoretical," since you won't be instanciating two different objects, and probably isn't necessary for your example. I feel that if this method increases understandability, however, the reader can get beyond this small "incorrectness" of the diagram.
I hope this sparks some ideas (no pun intended).
You could certainly use a collaboration diagram to show this as well; I just prefer sequence diagrams because I like seeing time flow from top to bottom.