X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6046e57acc865a87cf9f94d27d3c0fb4b0aa18ac..b51320ce9d182b935def16e0aae1493bf6de0f60:/src/msw/app.cpp diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 7d430057a9..b7ea221656 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -99,8 +99,13 @@ extern void wxSetKeyboardHook(bool doIt); // NB: all "NoRedraw" classes must have the same names as the "normal" classes // with NR suffix - wxWindow::MSWCreate() supposes this +#ifdef __WXWINCE__ + wxChar *wxCanvasClassName; + wxChar *wxCanvasClassNameNR; +#else const wxChar *wxCanvasClassName = wxT("wxWindowClass"); const wxChar *wxCanvasClassNameNR = wxT("wxWindowClassNR"); +#endif const wxChar *wxMDIFrameClassName = wxT("wxMDIFrameClass"); const wxChar *wxMDIFrameClassNameNoRedraw = wxT("wxMDIFrameClassNR"); const wxChar *wxMDIChildFrameClassName = wxT("wxMDIChildFrameClass"); @@ -254,6 +259,20 @@ bool wxApp::Initialize(int& argc, wxChar **argv) // ensure that base cleanup is done if we return too early wxCallBaseCleanup callBaseCleanup(this); +#ifdef __WXWINCE__ + wxString tmp = GetAppName(); + tmp += wxT("ClassName"); + wxCanvasClassName = wxStrdup( tmp.c_str() ); + tmp += wxT("NR"); + wxCanvasClassNameNR = wxStrdup( tmp.c_str() ); + HWND hWnd = FindWindow( wxCanvasClassNameNR, NULL ); + if (hWnd) + { + SetForegroundWindow( (HWND)(((DWORD)hWnd)|0x01) ); + return false; + } +#endif + // the first thing to do is to check if we're trying to run an Unicode // program under Win9x w/o MSLU emulation layer - if so, abort right now // as it has no chance to work @@ -267,7 +286,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv) ( NULL, _T("This program uses Unicode and requires Windows NT/2000/XP/CE.\nProgram aborted."), - _T("wxWindows Fatal Error"), + _T("wxWidgets Fatal Error"), MB_ICONERROR | MB_OK ); @@ -315,7 +334,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv) wxDisableButtonBrush = ::CreateBrushIndirect( & lb ); ::DeleteObject( (HGDIOBJ)lb.lbHatch ); } - //else: wxWindows resources are probably not linked in + //else: wxWidgets resources are probably not linked in #endif #if wxUSE_PENWINDOWS @@ -514,6 +533,11 @@ void wxApp::CleanUp() delete wxWinHandleHash; wxWinHandleHash = NULL; + +#ifdef __WXWINCE__ + free( wxCanvasClassName ); + free( wxCanvasClassNameNR ); +#endif } // ---------------------------------------------------------------------------- @@ -746,7 +770,7 @@ bool wxApp::Yield(bool onlyIfNeeded) bool wxApp::OnExceptionInMainLoop() { // ask the user about what to do: use the Win32 API function here as it - // could be dangerous to use any wxWindows code in this state + // could be dangerous to use any wxWidgets code in this state switch ( ::MessageBox (