D:/Zythum/DinoKod/Viewer/Viewer.cpp

00001 // Viewer.cpp : Définit les comportements de classe pour l'application.
00002 //
00003 
00004 #include "stdafx.h"
00005 #include "Viewer.h"
00006 #include "MainFrm.h"
00007 #include "ChildFrm.h"
00008 #include "Common/Console.h"
00009 
00010 #include "ViewerDoc.h"
00011 #include "ViewerView.h"
00012 #include "LogoDialog.h"
00013 #include "LeftView.h"
00014 
00015 #ifdef _DEBUG
00016 #define new DEBUG_NEW
00017 #endif
00018 
00019 
00020 // CViewerApp
00021 
00022 BEGIN_MESSAGE_MAP(CViewerApp, CWinApp)
00023         ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
00024         // Commandes de fichier standard
00025         ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
00026         ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
00027 END_MESSAGE_MAP()
00028 
00029 
00030 // construction de CViewerApp
00031 
00032 CViewerApp::CViewerApp()
00033 {
00034         m_pDocTemplate = NULL;
00035 }
00036 
00037 
00038 // Le seul et unique objet CViewerApp
00039 
00040 CViewerApp theApp;
00041 
00042 // initialisation de CViewerApp
00043 
00044 BOOL CViewerApp::InitInstance()
00045 {
00046         GetCurrentDirectory( sizeof( m_pCurrentDirectory ), m_pCurrentDirectory );
00047 
00048         // InitCommonControls() est requis sur Windows XP si le manifeste de l'application
00049         // spécifie l'utilisation de ComCtl32.dll version 6 ou ultérieure pour activer
00050         // les styles visuels.  Dans le cas contraire, la création de fenêtres échouera.
00051         InitCommonControls();
00052 
00053         CWinApp::InitInstance();
00054 
00055         // Initialiser les bibliothèques OLE
00056         if (!AfxOleInit())
00057         {
00058                 AfxMessageBox(IDP_OLE_INIT_FAILED);
00059                 return FALSE;
00060         }
00061         AfxEnableControlContainer();
00062 
00063         
00064         CLogoDialog     LogoDlg;
00065 
00066         LogoDlg.DoModal();
00067 
00068 
00069         // Initialisation standard
00070         // Si vous n'utilisez pas ces fonctionnalités et que vous souhaitez réduire la taille
00071         // de votre exécutable final, vous devez supprimer ci-dessous
00072         // les routines d'initialisation spécifiques dont vous n'avez pas besoin.
00073         // Changez la clé de Registre sous laquelle nos paramètres sont enregistrés.
00074         // TODO : Modifiez cette chaîne avec des informations appropriées,
00075         // telles que le nom de votre société ou organisation
00076         SetRegistryKey(_T("Applications locales générées par AppWizard"));
00077         LoadStdProfileSettings(8);  // Charge les options de fichier INI standard (y compris les derniers fichiers utilisés)
00078         // Inscrire les modèles de document de l'application. Ces modèles
00079         //  lient les documents, fenêtres frame et vues entre eux
00080         m_pDocTemplate = new CMultiDocTemplate(
00081                 IDR_ViewerTYPE,
00082                 RUNTIME_CLASS(CViewerDoc),
00083                 RUNTIME_CLASS(CChildFrame),       // fenêtre frame MDI principale
00084                 RUNTIME_CLASS(CLeftView));
00085         AddDocTemplate(m_pDocTemplate);
00086         // crée la fenêtre frame MDI principale
00087         CMainFrame* pMainFrame = new CMainFrame;
00088         if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
00089                 return FALSE;
00090         m_pMainWnd = pMainFrame;
00091         // appelle DragAcceptFiles uniquement s'il y a un suffixe
00092         //  Dans une application MDI, cet appel doit avoir lieu juste après la définition de m_pMainWnd
00093         // Analyser la ligne de commande pour les commandes shell standard, DDE, ouverture de fichiers
00094         CCommandLineInfo cmdInfo;
00095         cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
00096         ParseCommandLine(cmdInfo);
00097         // Distribue les commandes spécifiées dans la ligne de commande. Retourne la valeur FALSE si
00098         // l'application a été démarrée avec /RegServer, /Register, /Unregserver ou /Unregister.
00099         if (!ProcessShellCommand(cmdInfo))
00100                 return FALSE;
00101         // La fenêtre principale a été initialisée et peut donc être affichée et mise à jour
00102         pMainFrame->ShowWindow(m_nCmdShow);
00103         pMainFrame->UpdateWindow();
00104 
00105 //#ifdef        _DEBUG
00106         g_Console.Create( "Viewer console", true, m_hInstance, pMainFrame->GetSafeHwnd() );
00107 //#endif        // _DEBUG
00108 
00109         return TRUE;
00110 }
00111 
00112 void CViewerApp::ResetCurrentDirectory()
00113 {
00114         SetCurrentDirectory( m_pCurrentDirectory );
00115 }
00116 
00117 // gestionnaires de messages pour CViewerApp
00118 
00119 
00120 int CViewerApp::ExitInstance()
00121 {
00122 //#ifdef        _DEBUG
00123         g_Console.Close();
00124 //#endif        // _DEBUG
00125 
00126         return CWinApp::ExitInstance();
00127 }
00128 
00129 BOOL CViewerApp::OnIdle(LONG lCount)
00130 {
00131         if( !m_pMainWnd->IsIconic() )
00132         {
00133                 CChildFrame*    pChild = (CChildFrame*)((CMDIFrameWnd*)m_pMainWnd)->MDIGetActive();
00134                 if( pChild )
00135                         if( pChild->GetpGameViewer() )
00136                                 pChild->GetpGameViewer()->Run();
00137         }
00138         else
00139                 Sleep( 100 );
00140 
00141         return TRUE;//CWinApp::OnIdle(lCount);
00142 }
00143 
00144 // boîte de dialogue CAboutDlg utilisée pour la boîte de dialogue 'À propos de' pour votre application
00145 
00146 class CAboutDlg : public CDialog
00147 {
00148 public:
00149         CAboutDlg();
00150 
00151 // Données de la boîte de dialogue
00152         enum { IDD = IDD_ABOUTBOX };
00153 
00154 protected:
00155         virtual void DoDataExchange(CDataExchange* pDX);    // prise en charge de DDX/DDV
00156 
00157 // Implémentation
00158 protected:
00159         DECLARE_MESSAGE_MAP()
00160 };
00161 
00162 CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
00163 {
00164 }
00165 
00166 void CAboutDlg::DoDataExchange(CDataExchange* pDX)
00167 {
00168         CDialog::DoDataExchange(pDX);
00169 }
00170 
00171 BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
00172 END_MESSAGE_MAP()
00173 
00174 // Commande App pour exécuter la boîte de dialogue
00175 void CViewerApp::OnAppAbout()
00176 {
00177         CAboutDlg aboutDlg;
00178         aboutDlg.DoModal();
00179 }
00180 

Generated on Sun Mar 25 20:02:17 2007 for Zythum Project by  doxygen 1.5.1-p1