czerny, when you build a graphics object you associate that graphics with one, single, particular hdc.
It is a parent/child relation, the hdc is the parent, and the graphics is the "smart" child. When the
parent (dis->hDC) go out of scope in the first WM_DRAWITEM, the child remains orphan and more importantly
he can play only in his parent house. The next WM_DRAWITEM: ( I assume you have WS_THICKFRAME for your
dialog ) the child is ok, alive, but the hdc (parent) is a totaly stranger. The child try to play in the
new house ( because you say so ), but, he doesn't recognise the new parent so he fail.
The solution: everytime the parent die, kill the children too, everytime a new parent appear create a new child.
There is nothing wrong whith the Image, the code is a little redundant, no need for cloning the image.
Laur