/**
/* madnessEditor.cpp : definisce i comportamenti delle classi per l'applicazione.
/* **/
#include "stdafx.h"
#include "madnessEditor.h"
#include "MainFrm.h"
#include "ChildFrm.h"
#include "madnessEditorDoc.h"
#include "madnessEditorView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CmadnessEditorApp
BEGIN_MESSAGE_MAP(CmadnessEditorApp, CWinApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
// Comandi di documenti basati su file standard
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
// Comando di stampa standard
ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
//= costruzione di CmadnessEditorApp
CmadnessEditorApp::CmadnessEditorApp()
{
// Inserire l'inizializzazione significativa in InitInstance.
AppMap.Meaningful=false;
}
//= L'unico e solo oggetto CmadnessEditorApp
CmadnessEditorApp theApp;
//= Inizializzazione di CmadnessEditorApp
BOOL CmadnessEditorApp::InitInstance()
{
// InitCommonControls() č necessario in Windows XP se nel manifesto
// di un'applicazione č specificato l'utilizzo di ComCtl32.dll versione 6 o successiva per attivare
// gli stili visuali. In caso contrario, non sarą possibile creare finestre.
InitCommonControls();
CWinApp::InitInstance();
// Inizializzare le librerie OLE.
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
// Inizializzazione standard
// Se non si utilizzano queste funzionalitą e si desidera ridurre la dimensione
// dell'eseguibile finale, č necessario rimuovere dal seguente codice
// le specifiche routine di inizializzazione che non sono necessarie.
// Modificare la chiave del Registro di sistema in cui sono archiviate le impostazioni desiderate
// TODO: č necessario modificare questa stringa in modo appropriato,
// inserendo ad esempio il nome della societą o dell'organizzazione.
SetRegistryKey(_T("Applicazioni locali generate tramite la Creazione guidata di applicazioni locali"));
LoadStdProfileSettings(4); // Caricare le opzioni del file INI standard (inclusa MRU).
// Registrare i modelli di documenti dell'applicazione. I modelli di documenti
// funzionano da connessione tra documenti, finestre cornice e viste.
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_madnessEditorTYPE,
RUNTIME_CLASS(CmadnessEditorDoc),
RUNTIME_CLASS(CChildFrame), // frame MDI figlio personalizzato
RUNTIME_CLASS(CmadnessEditorView));
AddDocTemplate(pDocTemplate);
// creare finestra cornice MDI principale.
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
// richiamare DragAcceptFiles solo se č presente un suffisso.
m_pMainWnd->DragAcceptFiles();
// Attivare apertura esecuzione DDE.
EnableShellOpen();
RegisterShellFileTypes(TRUE);
// In un'applicazione MDI questo deve verificarsi immediatamente dopo l'impostazione di m_pMainWnd.
// Analizzare la riga di comando per i comandi shell standard, DDE, apri file
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Inviare comandi specificati nella riga di comando. Restituisce FALSE se
// l'applicazione č stata avviata con l'opzione /RegServer, /Register, /Unregserver o /Unregister.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// La finestra principale č stata inizializzata, per cui č possibile visualizzarla e aggiornarla.
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
return TRUE;
}
//= finestra di dialogo CAboutDlg utilizzata per visualizzare le informazioni sull'applicazione.
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dati della finestra di dialogo
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // supporto DDX/DDV
// Implementazione
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// comando dell'applicazione per eseguire la finestra di dialogo
void CmadnessEditorApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}