X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/45e6e6f8ab806b337dffeb3b52fec7eba3c845ef..1a2df6a75b3d96b35e29b1cf392758cbeeef93e0:/samples/mfc/mfctest.cpp diff --git a/samples/mfc/mfctest.cpp b/samples/mfc/mfctest.cpp index d0c92194ab..ec1fbfc480 100644 --- a/samples/mfc/mfctest.cpp +++ b/samples/mfc/mfctest.cpp @@ -38,8 +38,21 @@ // // 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" @@ -117,14 +130,14 @@ IMPLEMENT_APP_NO_MAIN(MyApp) CMainWindow::CMainWindow() { - LoadAccelTable( _T("MainAccelTable") ); - Create( NULL, _T("Hello Foundation Application"), - WS_OVERLAPPEDWINDOW, rectDefault, NULL, _T("MainMenu") ); + LoadAccelTable( wxT("MainAccelTable") ); + Create( NULL, wxT("Hello Foundation Application"), + WS_OVERLAPPEDWINDOW, rectDefault, NULL, wxT("MainMenu") ); } void CMainWindow::OnPaint() { - CString s = _T("Hello, Windows!"); + CString s = wxT("Hello, Windows!"); CPaintDC dc( this ); CRect rect; @@ -138,13 +151,13 @@ void CMainWindow::OnPaint() void CMainWindow::OnAbout() { - CDialog about( _T("AboutBox"), this ); + CDialog about( wxT("AboutBox"), this ); about.DoModal(); } void CMainWindow::OnTest() { - wxMessageBox(_T("This is a wxWidgets message box.\nWe're about to create a new wxWidgets frame."), _T("wxWidgets"), wxOK); + wxMessageBox(wxT("This is a wxWidgets message box.\nWe're about to create a new wxWidgets frame."), wxT("wxWidgets"), wxOK); wxGetApp().CreateFrame(); } @@ -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::GetActive()); if ( evtLoop && evtLoop->PreProcessMessage(msg) ) return TRUE; @@ -254,10 +268,10 @@ void MyApp::ExitMainLoop() wxFrame *MyApp::CreateFrame() { - MyChild *subframe = new MyChild(NULL, _T("Canvas Frame"), wxPoint(10, 10), wxSize(300, 300), + MyChild *subframe = new MyChild(NULL, wxT("Canvas Frame"), wxPoint(10, 10), wxSize(300, 300), wxDEFAULT_FRAME_STYLE); - subframe->SetTitle(_T("wxWidgets canvas frame")); + subframe->SetTitle(wxT("wxWidgets canvas frame")); // Give it a status line subframe->CreateStatusBar(); @@ -265,12 +279,12 @@ wxFrame *MyApp::CreateFrame() // Make a menubar wxMenu *file_menu = new wxMenu; - file_menu->Append(HELLO_NEW, _T("&New MFC Window")); - file_menu->Append(HELLO_QUIT, _T("&Close")); + file_menu->Append(HELLO_NEW, wxT("&New MFC Window")); + file_menu->Append(HELLO_QUIT, wxT("&Close")); wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, _T("&File")); + menu_bar->Append(file_menu, wxT("&File")); // Associate the menu bar with the frame subframe->SetMenuBar(menu_bar); @@ -315,7 +329,7 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) dc.DrawEllipse(250, 250, 100, 50); dc.DrawLine(50, 230, 200, 230); - dc.DrawText(_T("This is a test string"), 50, 230); + dc.DrawText(wxT("This is a test string"), 50, 230); } // This implements a tiny doodling program! Drag the mouse using