// [!output MAIN_FRAME_IMPL] : implementación de la clase [!output MAIN_FRAME_CLASS] // #include "stdafx.h" #include "[!output APP_HEADER]" #include "[!output MAIN_FRAME_HEADER]" #ifdef _DEBUG #define new DEBUG_NEW #endif [!if !MULTIPLE_PLATFORM] [!if POCKETPC2003_UI_MODEL] #define TOOLBAR_HEIGHT 24 [!endif] [!else] [!if POCKETPC2003_UI_MODEL] #ifdef WIN32_PLATFORM_PSPC #define TOOLBAR_HEIGHT 24 #endif // WIN32_PLATFORM_PSPC [!endif] [!endif] [!if HELPSTYLE_WINHELP] const DWORD dwAdornmentFlags = CMDBAR_HELP; // botones de ayuda y salida [!else] const DWORD dwAdornmentFlags = 0; // botón de salida [!endif] // [!output MAIN_FRAME_CLASS] [!if DOCVIEW] IMPLEMENT_DYNCREATE([!output MAIN_FRAME_CLASS], [!output MAIN_FRAME_BASE_CLASS]) [!else] IMPLEMENT_DYNAMIC([!output MAIN_FRAME_CLASS], [!output MAIN_FRAME_BASE_CLASS]) [!endif] BEGIN_MESSAGE_MAP([!output MAIN_FRAME_CLASS], [!output MAIN_FRAME_BASE_CLASS]) ON_WM_CREATE() [!if APP_TYPE_SDI || APP_TYPE_SDI_DOCLIST] [!if !DOCVIEW] ON_WM_SETFOCUS() [!endif] [!endif] [!if HELPSTYLE_WINHELP] ON_WM_HELPINFO() // Comandos de ayuda globales ON_COMMAND(ID_HELP_FINDER, &[!output MAIN_FRAME_BASE_CLASS]::OnHelpFinder) ON_COMMAND(ID_HELP, &[!output MAIN_FRAME_BASE_CLASS]::OnHelp) ON_COMMAND(ID_CONTEXT_HELP, &[!output MAIN_FRAME_BASE_CLASS]::OnContextHelp) ON_COMMAND(ID_DEFAULT_HELP, &[!output MAIN_FRAME_BASE_CLASS]::OnHelpFinder) [!endif] [!if APP_TYPE_SDI_DOCLIST] [!if !MULTIPLE_PLATFORM] [!if POCKETPC2003_UI_MODEL] ON_NOTIFY(DLN_DOCLIST_CREATE, AFX_ID_DOCLIST, &[!output MAIN_FRAME_CLASS]::OnCreateDocList) ON_NOTIFY(DLN_DOCLIST_DESTROY, AFX_ID_DOCLIST, &[!output MAIN_FRAME_CLASS]::OnDestroyDocList) ON_WM_DESTROY() [!endif] [!else] [!if POCKETPC2003_UI_MODEL] #ifdef WIN32_PLATFORM_PSPC ON_NOTIFY(DLN_DOCLIST_CREATE, AFX_ID_DOCLIST, &[!output MAIN_FRAME_CLASS]::OnCreateDocList) ON_NOTIFY(DLN_DOCLIST_DESTROY, AFX_ID_DOCLIST, &[!output MAIN_FRAME_CLASS]::OnDestroyDocList) ON_WM_DESTROY() #endif // WIN32_PLATFORM_PSPC [!endif] [!endif] [!if APP_TYPE_SDI] [!if LIST_VIEW] ON_UPDATE_COMMAND_UI_RANGE(AFX_ID_VIEW_MINIMUM, AFX_ID_VIEW_MAXIMUM, &[!output MAIN_FRAME_CLASS]::OnUpdateViewStyles) ON_COMMAND_RANGE(AFX_ID_VIEW_MINIMUM, AFX_ID_VIEW_MAXIMUM, &[!output MAIN_FRAME_CLASS]::OnViewStyle) [!endif] [!endif] [!endif] END_MESSAGE_MAP() [!if STATUS_BAR] static UINT indicators[] = { ID_SEPARATOR, // indicador de la línea de estado [!if DO_KANA] ID_INDICATOR_KANA, [!endif] ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; [!endif] // Construcción y destrucción de [!output MAIN_FRAME_CLASS] [!output MAIN_FRAME_CLASS]::[!output MAIN_FRAME_CLASS]() { // TODO: agregar aquí el código de inicialización de miembros } [!output MAIN_FRAME_CLASS]::~[!output MAIN_FRAME_CLASS]() { } int [!output MAIN_FRAME_CLASS]::OnCreate(LPCREATESTRUCT lpCreateStruct) { if ([!output MAIN_FRAME_BASE_CLASS]::OnCreate(lpCreateStruct) == -1) return -1; [!if APP_TYPE_SDI || APP_TYPE_SDI_DOCLIST] [!if !DOCVIEW] // Crear una vista para ocupar el área de cliente del marco if (!m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL)) { TRACE0("No se pudo crear la ventana de vista\n"); return -1; } [!endif] [!endif] [!if APP_TYPE_SDI || APP_TYPE_SDI_DOCLIST] [!if CMD_BAR_MENUONLY] if (!m_wndCommandBar.Create(this) || !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) || !m_wndCommandBar.AddAdornments(dwAdornmentFlags)) { TRACE0("CommandBar no se pudo crear\n"); return -1; // No se pudo crear } m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED); [!if !MULTIPLE_PLATFORM] [!if SMARTPHONE2003_UI_MODEL] CWnd* pWnd = CWnd::FromHandlePermanent(m_wndCommandBar.m_hWnd); RECT rect, rectDesktop; pWnd->GetWindowRect(&rect); pWnd->GetDesktopWindow()->GetWindowRect(&rectDesktop); int cx = rectDesktop.right - rectDesktop.left; int cy = (rectDesktop.bottom - rectDesktop.top) - (rect.bottom - rect.top); this->SetWindowPos(NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER); [!if !DOCVIEW] this->SetForegroundWindow(); [!endif] [!endif] [!else] [!if SMARTPHONE2003_UI_MODEL] #ifdef WIN32_PLATFORM_WFSP CWnd* pWnd = CWnd::FromHandlePermanent(m_wndCommandBar.m_hWnd); RECT rect, rectDesktop; pWnd->GetWindowRect(&rect); pWnd->GetDesktopWindow()->GetWindowRect(&rectDesktop); int cx = rectDesktop.right - rectDesktop.left; int cy = (rectDesktop.bottom - rectDesktop.top) - (rect.bottom - rect.top); this->SetWindowPos(NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER); [!if !DOCVIEW] this->SetForegroundWindow(); [!endif] #endif // WIN32_PLATFORM_WFSP [!endif] [!endif] [!else] [!if !MULTIPLE_PLATFORM] [!if POCKETPC2003_UI_MODEL] if (!m_wndCommandBar.Create(this) || !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) || !m_wndCommandBar.AddAdornments(dwAdornmentFlags) || !m_wndCommandBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("CommandBar no se pudo crear\n"); return -1; // No se pudo crear } m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED); [!endif] [!if SMARTPHONE2003_UI_MODEL] if (!m_wndCommandBar.Create(this) || !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) || !m_wndCommandBar.AddAdornments(dwAdornmentFlags)) { TRACE0("CommandBar no se pudo crear\n"); return -1; // No se pudo crear } m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED); CWnd* pWnd = CWnd::FromHandlePermanent(m_wndCommandBar.m_hWnd); RECT rect, rectDesktop; pWnd->GetWindowRect(&rect); pWnd->GetDesktopWindow()->GetWindowRect(&rectDesktop); int cx = rectDesktop.right - rectDesktop.left; int cy = (rectDesktop.bottom - rectDesktop.top) - (rect.bottom - rect.top); this->SetWindowPos(NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER); [!if !DOCVIEW] this->SetForegroundWindow(); [!endif] [!endif] [!if STANDARDSHELL_UI_MODEL || AYGSHELL_UI_MODEL] if (!m_wndCommandBar.Create(this) || !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) || !m_wndCommandBar.InsertSeparator() || !m_wndCommandBar.LoadToolBar(IDR_MAINFRAME) || !m_wndCommandBar.AddAdornments(dwAdornmentFlags)) { TRACE0("CommandBar no se pudo crear\n"); return -1; // No se pudo crear } m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED); [!endif] [!else] [!if POCKETPC2003_UI_MODEL] #ifdef WIN32_PLATFORM_PSPC if (!m_wndCommandBar.Create(this) || !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) || !m_wndCommandBar.AddAdornments(dwAdornmentFlags) || !m_wndCommandBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("CommandBar no se pudo crear\n"); return -1; // No se pudo crear } m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED); #endif // WIN32_PLATFORM_PSPC [!endif] [!if SMARTPHONE2003_UI_MODEL] #ifdef WIN32_PLATFORM_WFSP if (!m_wndCommandBar.Create(this) || !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) || !m_wndCommandBar.AddAdornments(dwAdornmentFlags)) { TRACE0("CommandBar no se pudo crear\n"); return -1; // No se pudo crear } m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED); CWnd* pWnd = CWnd::FromHandlePermanent(m_wndCommandBar.m_hWnd); RECT rect, rectDesktop; pWnd->GetWindowRect(&rect); pWnd->GetDesktopWindow()->GetWindowRect(&rectDesktop); int cx = rectDesktop.right - rectDesktop.left; int cy = (rectDesktop.bottom - rectDesktop.top) - (rect.bottom - rect.top); this->SetWindowPos(NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER); [!if !DOCVIEW] this->SetForegroundWindow(); [!endif] #endif // WIN32_PLATFORM_WFSP [!endif] [!if STANDARDSHELL_UI_MODEL || AYGSHELL_UI_MODEL] #if !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP) if (!m_wndCommandBar.Create(this) || !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) || !m_wndCommandBar.InsertSeparator() || !m_wndCommandBar.LoadToolBar(IDR_MAINFRAME) || !m_wndCommandBar.AddAdornments(dwAdornmentFlags)) { TRACE0("CommandBar no se pudo crear\n"); return -1; // No se pudo crear } m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED); #endif // !WIN32_PLATFORM_PSPC && !WIN32_PLATFORM_WFSP [!endif] [!endif] [!endif] [!endif] [!if STATUS_BAR] if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("No se pudo crear la barra de estado\n"); return -1; // No se pudo crear } [!endif] return 0; } BOOL [!output MAIN_FRAME_CLASS]::PreCreateWindow(CREATESTRUCT& cs) { if (![!output MAIN_FRAME_BASE_CLASS]::PreCreateWindow(cs)) return FALSE; // TODO: modificar aquí la clase Window o los estilos cambiando // CREATESTRUCT cs [!if !MAIN_FRAME_DEFAULT_STYLES] [!endif] [!if APP_TYPE_SDI || APP_TYPE_SDI_DOCLIST] [!if !DOCVIEW] cs.lpszClass = AfxRegisterWndClass(0); [!endif] [!endif] return TRUE; } [!if HELPSTYLE_WINHELP] void [!output MAIN_FRAME_CLASS]::OnHelpInfo(HELPINFO* pHelpInfo) { // TODO: implementar la ayuda aquí MessageBox(_T("Ayuda")); } [!endif] [!if APP_TYPE_SDI_DOCLIST] [!if !MULTIPLE_PLATFORM] [!if POCKETPC2003_UI_MODEL] void [!output MAIN_FRAME_CLASS]::OnCreateDocList(DLNHDR* pNotifyStruct, LRESULT* result) { CDocList* pDocList = (CDocList*)FromHandle(pNotifyStruct->nmhdr.hwndFrom); ASSERT_KINDOF(CDocList, pDocList); m_wndDocListCommandBar.m_pWndDocList = pDocList; m_wndDocListCommandBar.Create(this); m_wndDocListCommandBar.InsertMenuBar(IDR_DOCLIST); CFrameWnd::OnCreateDocList(pNotifyStruct, result); } void [!output MAIN_FRAME_CLASS]::OnDestroyDocList(DLNHDR* pNotifyStruct, LRESULT* result) { m_wndDocListCommandBar.DestroyWindow(); CFrameWnd::OnDestroyDocList(pNotifyStruct, result); } void [!output MAIN_FRAME_CLASS]::OnDestroy() { CFrameWnd::OnDestroy(); } [!endif] [!else] [!if POCKETPC2003_UI_MODEL] #ifdef WIN32_PLATFORM_PSPC void [!output MAIN_FRAME_CLASS]::OnCreateDocList(DLNHDR* pNotifyStruct, LRESULT* result) { CDocList* pDocList = (CDocList*)FromHandle(pNotifyStruct->nmhdr.hwndFrom); ASSERT_KINDOF(CDocList, pDocList); m_wndDocListCommandBar.m_pWndDocList = pDocList; m_wndDocListCommandBar.Create(this); m_wndDocListCommandBar.InsertMenuBar(IDR_DOCLIST); CFrameWnd::OnCreateDocList(pNotifyStruct, result); } void [!output MAIN_FRAME_CLASS]::OnDestroyDocList(DLNHDR* pNotifyStruct, LRESULT* result) { m_wndDocListCommandBar.DestroyWindow(); CFrameWnd::OnDestroyDocList(pNotifyStruct, result); } void [!output MAIN_FRAME_CLASS]::OnDestroy() { CFrameWnd::OnDestroy(); } #endif // WIN32_PLATFORM_PSPC [!endif] [!endif] [!endif] // Diagnósticos de [!output MAIN_FRAME_CLASS] #ifdef _DEBUG void [!output MAIN_FRAME_CLASS]::AssertValid() const { [!output MAIN_FRAME_BASE_CLASS]::AssertValid(); } #endif //_DEBUG // Controladores de mensajes de [!output MAIN_FRAME_CLASS] [!if !DOCVIEW] [!if APP_TYPE_SDI || APP_TYPE_SDI_DOCLIST] void [!output MAIN_FRAME_CLASS]::OnSetFocus(CWnd* /*pOldWnd*/) { // enviar foco a la ventana de vista m_wndView.SetFocus(); } BOOL [!output MAIN_FRAME_CLASS]::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { // Permitir que la vista se interrumpa primero en el comando if (m_wndView.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; // De lo contrario, proceder con el control predeterminado return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); } [!endif] [!endif]