]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/mfc/mfctest.cpp
implement wxTreeCtrl::GetFocusedItem() for wxMSW too (see #10859)
[wxWidgets.git] / samples / mfc / mfctest.cpp
index 7a3f3d34e48a10ba66e7b84250625b7094c1b9ff..a4102648a94a6febd46df3f220b228f6d33fb0bc 100644 (file)
 //
 //     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 
+//     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
+//
+// (4) Unicode builds may produce the linker error "unresolved external symbol _WinMain@16".
+//     MFC requires you to manually add the Unicode entry point to the linker settings,
+//     Entry point symbol -> wWinMainCRTStartup
 
 #include "stdafx.h"
 
@@ -214,7 +227,8 @@ int CTheApp::ExitInstance()
 // Override this to provide wxWidgets message loop compatibility
 BOOL CTheApp::PreTranslateMessage(MSG *msg)
 {
-    wxEventLoop *evtLoop = wxEventLoop::GetActive();
+    wxEventLoop * const
+        evtLoop = static_cast<wxEventLoop *>(wxEventLoop::GetActive());
     if ( evtLoop && evtLoop->PreProcessMessage(msg) )
         return TRUE;
 
@@ -232,6 +246,9 @@ BOOL CTheApp::OnIdle(LONG WXUNUSED(lCount))
 
 bool MyApp::OnInit()
 {
+    if ( !wxApp::OnInit() )
+        return false;
+
 #if !START_WITH_MFC_WINDOW
     // as we're not inside wxWidgets main loop, the default logic doesn't work
     // in our case and we need to do this explicitly