<p>Some of the controls I've created seem to default to the old Windows 95 theme, how do I prevent this? Here's an example of a button that does not retain the Operating System's native appearance (I'm using Vista as my development environment):</p>

<pre><code>HWND button = CreateWindowEx(NULL, L"BUTTON", L"OK", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
                                  170, 340, 80, 25, hwnd, NULL, GetModuleHandle(NULL), NULL);
</code></pre>

<p>I'm using native C++ with the Windows API, no managed code.</p>

I believe it has got nothing to do with your code, but you need to set up a proper
manifest
file to get the themed controls.
Some info here:
@msdn.com
and here:
@blogs.msdn.com
You can see a difference between application with and without manifest here:
heaventools.com