My own winapi study has always been "what i need" - i was never taught properly by anyone, just looked at what i found interesting
Its also rusty - for a couple o years now i've used c# for applications and utilities (keeping c++ for engines) and in c# it doesnt matter xD
So excuse if this information isnt completely accurate but:
Each control has its own surface. Each control also has its own handle (im pretty certain on this) and so, by finding the handle (hWnd, etc) for a control you could get its device contex using GETDC I *think* and then any GDI drawing etc you do to that contex should appear on the component you are drawing on. That is something i'm *assuming* based purely off the fact that in c# each component has a "Handle" property and overwriting the dgdk hWnd with that handle causes dgdk to draw only on that component (which is funny when its a small button
)
But, in contrast, controls (components) are attached to a window which is itself ANOTHER service with another potential device context. Ie, the dgdk window has a hwnd, you could create a device context from that and drawing to that DC would draw on the window itself. But the window could have a menu attached, the menu has its own handle, you could create a DC from that and then draw to that DC to restrict drawing to the menu.
I dunno if any of this information is useful to you because i'm not sure what exactally you intend to do
It sounds like you want to create buttons etc and then draw on them - possiably some sort of theming engine?
Anyway, thats about all i know xD