X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/885ebd2b32ebe2113b2a2a0241614b0ea468b229..55325d01e68cfb071e42699ca72ba84a7071aa2b:/samples/mfc/mfctest.cpp?ds=sidebyside diff --git a/samples/mfc/mfctest.cpp b/samples/mfc/mfctest.cpp index 552aa76500..2712c716c1 100644 --- a/samples/mfc/mfctest.cpp +++ b/samples/mfc/mfctest.cpp @@ -32,12 +32,14 @@ // 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 - -// suppress warning about WINVER not being defined from MFC -#ifndef WINVER -#define WINVER 0x7000 -#endif +// (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 #include "stdafx.h" @@ -111,14 +113,14 @@ IMPLEMENT_APP_NO_MAIN(MyApp) CMainWindow::CMainWindow() { - LoadAccelTable( "MainAccelTable" ); - Create( NULL, "Hello Foundation Application", - WS_OVERLAPPEDWINDOW, rectDefault, NULL, "MainMenu" ); + LoadAccelTable( _T("MainAccelTable") ); + Create( NULL, _T("Hello Foundation Application"), + WS_OVERLAPPEDWINDOW, rectDefault, NULL, _T("MainMenu") ); } void CMainWindow::OnPaint() { - CString s = "Hello, Windows!"; + CString s = _T("Hello, Windows!"); CPaintDC dc( this ); CRect rect; @@ -132,13 +134,13 @@ void CMainWindow::OnPaint() void CMainWindow::OnAbout() { - CDialog about( "AboutBox", this ); + CDialog about( _T("AboutBox"), this ); about.DoModal(); } void CMainWindow::OnTest() { - wxMessageBox("This is a wxWidgets message box.\nWe're about to create a new wxWidgets frame.", "wxWidgets", wxOK); + wxMessageBox(_T("This is a wxWidgets message box.\nWe're about to create a new wxWidgets frame."), _T("wxWidgets"), wxOK); wxGetApp().CreateFrame(); } @@ -169,7 +171,7 @@ BOOL CTheApp::InitInstance() wxSetInstance(m_hInstance); wxApp::m_nCmdShow = m_nCmdShow; int argc = 0; - char **argv = NULL; + wxChar **argv = NULL; wxEntryStart(argc, argv); if ( !wxTheApp || !wxTheApp->CallOnInit() ) return FALSE; @@ -194,6 +196,10 @@ BOOL CTheApp::InitInstance() int CTheApp::ExitInstance() { +#if !START_WITH_MFC_WINDOW + delete m_pMainWnd; +#endif + if ( wxTheApp ) wxTheApp->OnExit(); wxEntryCleanup(); @@ -235,10 +241,10 @@ bool MyApp::OnInit() wxFrame *MyApp::CreateFrame() { - MyChild *subframe = new MyChild(NULL, "Canvas Frame", wxPoint(10, 10), wxSize(300, 300), + MyChild *subframe = new MyChild(NULL, _T("Canvas Frame"), wxPoint(10, 10), wxSize(300, 300), wxDEFAULT_FRAME_STYLE); - subframe->SetTitle("wxWidgets canvas frame"); + subframe->SetTitle(_T("wxWidgets canvas frame")); // Give it a status line subframe->CreateStatusBar(); @@ -246,12 +252,12 @@ wxFrame *MyApp::CreateFrame() // Make a menubar wxMenu *file_menu = new wxMenu; - file_menu->Append(HELLO_NEW, "&New MFC Window"); - file_menu->Append(HELLO_QUIT, "&Close"); + file_menu->Append(HELLO_NEW, _T("&New MFC Window")); + file_menu->Append(HELLO_QUIT, _T("&Close")); wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); + menu_bar->Append(file_menu, _T("&File")); // Associate the menu bar with the frame subframe->SetMenuBar(menu_bar); @@ -296,7 +302,7 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) dc.DrawEllipse(250, 250, 100, 50); dc.DrawLine(50, 230, 200, 230); - dc.DrawText("This is a test string", 50, 230); + dc.DrawText(_T("This is a test string"), 50, 230); } // This implements a tiny doodling program! Drag the mouse using @@ -332,6 +338,8 @@ MyChild::MyChild(wxFrame *frame, const wxString& title, const wxPoint& pos, cons MyChild::~MyChild() { + if ( IsLastBeforeExit() ) + PostQuitMessage(0); } void MyChild::OnQuit(wxCommandEvent& WXUNUSED(event)) @@ -354,7 +362,7 @@ void MyChild::OnActivate(wxActivateEvent& event) // Dummy MFC window for specifying a valid main window to MFC, using // a wxWidgets HWND. -CDummyWindow::CDummyWindow(HWND hWnd):CWnd() +CDummyWindow::CDummyWindow(HWND hWnd) { Attach(hWnd); }