-
Notifications
You must be signed in to change notification settings - Fork 0
/
GPEngine.cpp
210 lines (145 loc) · 5.41 KB
/
GPEngine.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
// GPEngine.cpp : define los comportamientos de las clases para la aplicación.
//
#include "stdafx.h"
#include "afxwinappex.h"
#include "afxdialogex.h"
#include "GPEngine.h"
#include "MainFrm.h"
#include "GPEngineDoc.h"
#include "GPEngineView.h"
#include "world.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CGPEngineView *_engine_view = NULL;
// CGPEngineApp
BEGIN_MESSAGE_MAP(CGPEngineApp, CWinAppEx)
ON_COMMAND(ID_APP_ABOUT, &CGPEngineApp::OnAppAbout)
// Comandos de documento estándar basados en archivo
ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)
END_MESSAGE_MAP()
// Construcción de CGPEngineApp
CGPEngineApp::CGPEngineApp()
{
m_bHiColorIcons = TRUE;
// TODO: reemplace la cadena de identificador de aplicación siguiente por una cadena de identificador único; el formato
// recomendado para la cadena es NombreCompañía.NombreProducto.Subproducto.InformaciónDeVersión
SetAppID(_T("GPEngine.AppID.NoVersion"));
// TODO: agregar aquí el código de construcción,
// Colocar toda la inicialización importante en InitInstance
}
// El único objeto CGPEngineApp
CGPEngineApp theApp;
// Inicialización de CGPEngineApp
BOOL CGPEngineApp::InitInstance()
{
// Windows XP requiere InitCommonControlsEx() si un manifiesto de
// aplicación especifica el uso de ComCtl32.dll versión 6 o posterior para habilitar
// estilos visuales. De lo contrario, se generará un error al crear ventanas.
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// Establecer para incluir todas las clases de control comunes que desee utilizar
// en la aplicación.
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinAppEx::InitInstance();
EnableTaskbarInteraction(FALSE);
// Se necesita AfxInitRichEdit2() para usar el control RichEdit
// AfxInitRichEdit2();
// Inicialización estándar
// Si no utiliza estas características y desea reducir el tamaño
// del archivo ejecutable final, debe quitar
// las rutinas de inicialización específicas que no necesite
// Cambie la clave del Registro en la que se almacena la configuración
// TODO: debe modificar esta cadena para que contenga información correcta
// como el nombre de su compañía u organización
SetRegistryKey(_T("Aplicaciones generadas con el Asistente para aplicaciones local"));
LoadStdProfileSettings(4); // Cargar opciones de archivo INI estándar (incluidas las de la lista MRU)
InitContextMenuManager();
InitKeyboardManager();
InitTooltipManager();
CMFCToolTipInfo ttParams;
ttParams.m_bVislManagerTheme = TRUE;
theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL,
RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams);
// Registrar las plantillas de documento de la aplicación. Las plantillas de documento
// sirven como conexión entre documentos, ventanas de marco y vistas
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CGPEngineDoc),
RUNTIME_CLASS(CMainFrame), // Ventana de marco SDI principal
RUNTIME_CLASS(CGPEngineView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
// Analizar línea de comandos para comandos Shell estándar, DDE, Archivo Abrir
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Habilitar apertura de ejecución DDE
EnableShellOpen();
RegisterShellFileTypes(TRUE);
// Enviar comandos especificados en la línea de comandos. Devolverá FALSE si
// la aplicación se inició con los modificadores /RegServer, /Register, /Unregserver o /Unregister.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
if(_engine_view!=NULL)
_engine_view->init = true;
// Se ha inicializado la única ventana; mostrarla y actualizarla
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();
// Llamar a DragAcceptFiles sólo si existe un sufijo
// En una aplicación SDI, esto debe ocurrir después de ProcessShellCommand
// Habilitar apertura de arrastrar y colocar
m_pMainWnd->DragAcceptFiles();
return TRUE;
}
// Controladores de mensaje de CGPEngineApp
// Cuadro de diálogo CAboutDlg utilizado para el comando Acerca de
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// Datos del cuadro de diálogo
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // Compatibilidad con DDX/DDV
// Implementación
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// Comando de la aplicación para ejecutar el cuadro de diálogo
void CGPEngineApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
// Métodos para cargar o guardar personalizaciones de CGPEngineApp
void CGPEngineApp::PreLoadState()
{
BOOL bNameValid;
CString strName;
bNameValid = strName.LoadString(IDS_EDIT_MENU);
ASSERT(bNameValid);
GetContextMenuManager()->AddMenu(strName, IDR_POPUP_EDIT);
bNameValid = strName.LoadString(IDS_EXPLORER);
ASSERT(bNameValid);
GetContextMenuManager()->AddMenu(strName, IDR_POPUP_EXPLORER);
}
void CGPEngineApp::LoadCustomState()
{
}
void CGPEngineApp::SaveCustomState()
{
}
// Controladores de mensaje de CGPEngineApp