void wxGISApplicationEx::OnClose(wxCloseEvent& event) { event.Skip(); for(size_t i = 0; i < m_CommandBarArray.GetCount(); ++i) { if(m_CommandBarArray[i]->GetType() == enumGISCBToolbar) { wxGISToolBar* pToolBar = static_cast<wxGISToolBar*>(m_CommandBarArray[i]); if(pToolBar) pToolBar->Deactivate(); } } for(size_t i = 0; i < m_anWindowsIDs.GetCount(); ++i) { wxWindow* pWnd = wxWindow::FindWindowById(m_anWindowsIDs[i]); IView* pView = dynamic_cast<IView*>(pWnd); if(pView) pView->Deactivate(); } wxGISApplication::OnClose(event); SerializeFramePosEx(true); m_mgr.UnInit(); }