I am trying to learn how to draw a custom frame around a window ( like AIM, Norton Antivirus 2009, many media apps, etc.). Since the frame is the 'non-client' area of the window, based on google and MSDN searches, it seems that creating a 'skinnable' application, or simply an application with a custom frame is a matter of handling WM_NCPAINT, WM_NCCALCSIZE, WM_NCACTIVATE, WM_NCHITTEST, and a few other non-client area messages. I am working on an application right now that implements these messages, but so far am not having much luck. as i have more time, i will try to post some code snippets, but in the mean time, i was wondering if anyone has had any experience with this before and knows if this is the correct solution, or if there is a better solution to this problem.