-// IMPORTANT NOTE: to compile this sample, you must first edit
-// wx/src/msw/wx_main.cc, set NOWINMAIN to 1, and remake wxWindows
-// (it only needs to recompile wx_main.cc).
-// This eliminates the duplicate WinMain function which MFC implements.
+// This can be accomplished by setting START_WITH_MFC_WINDOW to 1 below.
+
+#define START_WITH_MFC_WINDOW 0
+
+//
+// IMPORTANT NOTES:
+//
+// (1) You may need to set wxUSE_MFC to 1 in include/wx/msw/setup.h but
+// normally this shouldn't be needed any longer, i.e. it works without
+// it for me (VZ)
+//
+// (2) You should link with MFC DLL, not static libraries: or, to use static
+// run-time libraries, use this command for both building wxWidgets and
+// the sample:
+//
+// nmake -f makefile.vc BUILD=debug SHARED=0 DEBUG_RUNTIME_LIBS=0 RUNTIME_LIBS=static all
+//
+// Unless the run-time library settings match for wxWidgets and MFC, you
+// will get link errors for symbols such as __mbctype, __argc, and __argv
+//
+// (3) If you see bogus memory leaks within the MSVC IDE on exit, in this
+// sample or in your own project, you must be using __WXDEBUG__ +
+// WXUSINGDLL + _AFXDLL
+// Unfortunately this confuses the MSVC/MFC leak detector. To do away with
+// these bogus memory leaks, add this to the list of link objects, make it
+// first: mfc[version][u]d.lib
+// - [version] -> 42 or 70 or 80 etc
+// - u if using Unicode
+
+// Disable deprecation warnings from headers included from stdafx.h for VC8+
+#ifndef _CRT_SECURE_NO_WARNINGS
+ #define _CRT_SECURE_NO_WARNINGS
+#endif
+
+// Also define WINVER to avoid warnings about it being undefined from the
+// platform SDK headers (usually this is not necessary because it is done by wx
+// headers but here we include the system ones before them)
+#ifndef WINVER
+ #define WINVER 0x0600
+#endif
+
+#include "stdafx.h"