|
Программирование >> Процедурные приложения
MainFrm.cpp: реализация класса CMainFrame #include stdafx.h #include Cnt.h #include MainFrm.h tifdef DEBUG #define new DEBUG NEW tundef THIS FILE Static char THIS FILE[] = FILE ; #endif
CMainFrame IMPLEMENT DYNCREATE (CMainFrame, CFrameWnd) i BEGIN MESSAGE MAP (CMainFrame, CFrameWnd) {{AFX MSG MAP (CMainFrame) ПРИМЕЧАНИЕ: мастер классов будет добавлять и удалять здесь макросы схемы сообщений. НЕ РЕДАКТИРУЙТЕ то,что здесь находится. }}AFX MSG MAPEND MESSAGE MAP ( ) static UINT indicators!] = { ID SEPARATOR, поля строки состояния ID INDICATOR CAPS, ID INDICATOR NUM, ID INDICATOR SCRL,
II Конструктор и деструктор класса CMainFrame CMainFrame::CMainFrame() { TODO: здесь добавьте код конструктора. CMainFrame::-CMainFrame() f int CMainFrame: :OnCreate (LPCREATESTRUCT IpCreateStruct) { if (CFrameWnd: :OnCreate (IpCreateStruct) == -1) return -1; if (!m wndToolBar.CreateEx(this, TBSTYLE FLAT, WS CHILD WS VISIBLE I CBRS TOP CBRS GRIPPER I CBRSJTOOLTIPS I CBRS FLYBY CBRS SIZE DYNAMIC) !m wndToolBar.LoadToolBar(IDR MAINFRAME) ) { TRACEO ( Failed to create toolbar\n ) ; return-1; создать панель инструментов не удалось if (!m wndStatusBar.Create(this) !m wndStatusBar.Setlndicators(indicators, sizeof(indicators)/sizeof(UINT))) ( TRACEO( Failedto create status bar\n ); return -1; создать строку состояния неудалось} TODO: удалите следующие три строки, если вы не хотите, чтобы панель инструментов была перемещаемой. m wndToolBar . EnableDocking (CBRS ALIGN ANY) ; EnableDocking(CBRS ALIGN ANY) ; DockControlBar (Sm wndToolBar) ; return 0; BOOL CMainFrame: : PreCreateWindow (CREATESTRUCT Ses) { if(ICFrameWnd: : PreCreateWindow (cs)) return FALSE; TODO: здесь можно модифицировать класс окна, изменяя поля структуры cs. return TRUE; }
Диагностика класса CMainFrame #ifdef DEBUG void CMainFrame: :AssertValid () const CFrameWnd: :AssertValid() ; void CMainFrame::Dump(CDumpContext Sdc) const CFrameWnd::Dump(dc); } #endif DEBUG
Обработчики сообщений класса CMainFrame Файл CNTDOC.CPP Файл CNTDOC.CPPсодержит ряд дополнительных фрагментов, с которыми ранее мы не встречались. CntDoc.cpp: реализация класса CCntDoc #include stdafx.h #include Cnt.h # include CntDoc.h #include Cntrltem.h tifdef DEBUG #define new DEBUG NEW lundef THIS FILE static char THIS FILE[] = FILE ; #endif CCntDoc IMPLEMENT DYNCREATE (CCntDoc, COleDocument) BEGIN MESSAGE MAP (CCntDoc, COleDocument) {{AFX MSG MAP (CCntDoc) ПРИМЕЧАНИЕ: мастер классов будет добавлять и удалять здесь макросы схемы сообщений. НЕ РЕДАКТИРУЙТЕ то, что здесь находится. }}AFX MSG MAP Используется стандартная реализация OLE-контейнера ON UPDATE COMMAHD UI ( ID EDIT PASTE, COleDocument: :OnUpdatePasteMenu) ON OPDATE COMMAMD OI ( ID EDIT PASTE LINK , COleDocument: :OnUpdatePasteLinkMenu) ON UPDATE COMMMJD UI ( ID OLE EDIT CONVERT , COleDocument: :OnUpdateObjectVerbMenu) ON COMMAND (ID OLE EDIT CONVERT, COleDocument: :OnEditConvert) ON OPDATE COMMAHD OI (ID OLE EDIT LINKS COleDocument: :OnUpdateEditLinksMenu) ON COMMAND (ID OLE EDIT LINKS , COleDocument: :OnEditLinks) ON 0PDATE COMMAND UI RftNGE ( ID OLE VERB FIRST , ID OLE VERB IAST, COleDocument: :OnUpdateObjectVerbMenu) END MESSAGE MAP () Конструктор и деструктор класса CCntDoc CCntDoc: : CCntDoc( ) { 400 * включается поддержка составных файлов EnablecompoundFile ( ) ; TODO: здесь добавьте код конструктора. CCntDoc::-CCntDoc() BOOLCCntDoc: : OnNewDocument( ) if ( ! COleDocument : : OnNewDocument ( ) ) return FALSE; TODO: здесь добавьте код повторной инициализации (специфика SDI-приложений) return TRUE;
Сериализация класса CCntDoc void CCntDoc::Serialize(CArchive sar) { if (ar. IsStoringO ) TODO: здесь добавьте код сохранения. else. TODO: здесь добавьте код загрузки. Вызов функции базового класса COleDocument обеспечивает сериализацию объектов COleClientltem, содержащихся в документе контейнера. COleDocument : : Serialize (ar ) ;
Диагностика класса CCntDoc tifdef DEBUG void CCntDoc::AssertValid() const COleDocument::AssertValid(); } void CCntDoc: : Dump (CDumpContext .&dc) const { COleDocument: :Dump(dc) ; } #endif DEBUG
Другие функции класса CCntDoc Наиболее важное отличие кода рассматриваемого файла от уже знакомых нам состоит в расширении схемы сообщений. В программу добавлены обработчики сообщений, реализующие работу стандартного контейнера. Обратите внимание на функцию EnableCompoundFile() , вызываемую в конструкторе. Эта функция осуществляет поддержку составных файлов, что позволяет сохранять документы с внедренными объектами в специальном структурированном формате. Файл CNTVIEW.CPP Файл CNTVIEW.CPPтакже имеет ряд существенных особенностей по сравнению с соответствующим файлом приложения Graph. CntView.cpp : реализация класса CCntView #include stdafx.h #include Cnt.h
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |