Программирование >>  Процедурные приложения 

1 ... 130 131 132 [ 133 ] 134 135 136 ... 150


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



1 ... 130 131 132 [ 133 ] 134 135 136 ... 150

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика