1. If you thought that so bad formatted code is easy to read/understand then you was wrong!
2. What is GetDc?
3. What is ReleaseDc?
4. What are you trying to do within the case ID_CIRCLE: of case WM_COMMAND:? Why "draw a circle" NOT in response to WM_PAINT?