Вы можете использовать SetSysColors (), чтобы изменить цвет для заголовков окон, границ и т. Д. (См. http://msdn.microsoft.com/en-us/library/ms724940(VS.85).aspx). Однако это изменит цвет для всех окон, а не только для ваших, так что это по крайней мере недружелюбная вещь.
Одним из вариантов является использование SetSysColors () для изменения цвета заголовка активного окна, когда ваше приложение имеет фокус, и для сброса его к значениям по умолчанию, когда оно теряет фокус. Но я бы сказал, что это глупо и не совсем соответствует хорошей практике (предположим, что ваше приложение аварийно завершает работу? И может быть какое-то мерцание).
WM_NCPAINT существует, чтобы вы могли делать такие вещи. Это немного больно, но, может быть, это отговорит вас от создания нестандартных окон ...; -)