kuurap!! I had the answer in front of me. ... chess blindness was filling my eyes

All I had to do was remove this line from the IDC_BTN_ROLL case:
DeleteDC(hdcMem);

I commented that out and the button works. It displays the no. 3 dice bitmap just as I wanted.

I then cleaned out the WM_PAINT case and all's good. Thanks for your help.

FYI, my other code parts are basically a set of three pseudo random number generators. One basic c++ method (srand() ... rand()); a widely accepted PRNG called the Marsenne Twister; and my own contraption I call a loopty loop (nested randomly iterating loops that spits out a prng at the end of the random loops).

I'm ready to read up on Qt now.