|
Программирование >> Процедурные приложения
CObject(const CObjectS objectSrc); реализация отсутствует void operator=(const CObjectS objectSrc); реализация отсутствует Атрибуты public: BOOL IsSerializableOconst; BOOL IsKindOf(const CRuntimeClass* pClass) const; Виртуальные методы virtual void Serialize (CArchiveS ar) ; Поддержка диагностики virtual void AssertValidO const; virtual void Dump (CDumpContextS. dc) const; Реализация public: static const AFX DATA CRuntimeClass classCObject; #ifdef AFXDLL static CRuntimeClass* PASCAL GetBaseClass(); #endif }; В данном примере программный код для большей ясности слегка отредактирован, но в целом это тот же код, который вы найдете в указанном файле. Обратите внимание, из каких компонентов состоит описание класса CObject. Как видите, здесь четко прослеживается выделение блоков открытых (public), закрытых (private) и защищенных (protected) членов класса. CObjectтакже обеспечивает возможность динамического определения типа и сериализации. Вспомните, что возможность динамической проверки типа позволяет определять тип объекта во время выполнения программы. Сведения о состоянии объекта можно сохранить в файле на диске, благодаря чему реализуется концепция постоянства. Все остальные классы MFC порождаются от CObject. Примером такого класса может служить CGdiObject(объявлен в файле AFXWIN.H), описание которого приведено ниже. / Абстрактныйкласс CGdiObject дляметода CDC: :SelectObject class CGdiObject : public CObject { DECLARE DYNCREATE (CGdiObject) public: Атрибуты HGDIOBJ m hObject; должна быть первой переменной-членом operator HGDIOBJ () const; HGDIOBJ GetSafeHandleO const; static CGdiObject* PASCAL FromHandle (HGDIOBJ hObject) ; static void PASCAL DeleteTempMap () ; BOOL Attach (HGDIOBJ hObject) ; HGDIOBJ Detach () ; Конструкторы CGdiObject() ; должен создавать объект производного класса BOOLDeleteObject() ; Методы int GetObject (int nCount, LPVOID IpObject) const; UINT GetObjectTypeO const; BOOL CreateStockObject (int nlndex) ; BOOL UnrealizeObjectO ; BOOL operator- (const CGdiObjectS ob j ) const; root. nnf=rator! = (const CGdiObiectS obi)const; Реализация public: virtual -CGdiObject() ; tifdef DEBUG virtual void Dump (CDumpContextS. dc) const; virtual void AssertValid() const; #endif }; Класс CGdiObjectи его методы позволяют создавать и использовать в приложениях такие графические объекты, как перья, кисти и шрифты. От CGdiObject порождаются некоторые другие классы, в частности CPen. Библиотека MFC поставляется вместе с исходными текстами классов, что дает возможность программистам настраивать базовые классы в соответствии со своими потребностями. Впрочем, для начинающих программистов нет никакой необходимости заниматься редактированием MFC и даже знать, как реализован тот или иной класс. Например, в традиционных процедурных программах вызов функции DeleteObject()имеет следующий синтаксис: DeleteObject(hBRUSH); /* где hBRUSH- дескриптор кисти */ В MFC -приложениях того же результата можно достичь путем вызова функции-члена: newbrush.DeleteObject (); где newbrush- текущая кисть Иерархия классов MFC Ниже показан список классов библиотеки MFC , порожденных от CObject. CObject CException CArchiveException CDaoException CDBException CFileException CInternetException CMemoryException CNotSupportedException COleDispatchException COleException CResourceException CUserException CFile CMemFile CSharedFile COleStreamFile CMonikerFile CAsyncMonikerFile CDataPathProperty CCachedDataPathProperty CSocketFile CStdioFile CInternetFile CGopherFile CHttpFile CRecentFileList CDC CClientDC CMetaFileDC CPaintDC CWindowDC CDocState CImageList CGdiObject CBitmap CBrush CFont CPalette CPen CRgn CMenu CCommandLinelnfo CDatabase CRecordSet CLongBinary CDaoDatabase CDaoQueryDef CDaoRecordSet CDaoTableDef CDaoWorkspace CSyncObject CCriticalSection CEvent CMutex CSemaphore CAsyncSocket CSocket CArray CByteArray CDWordArray CObArray CPtrArray CStringArray CUIntArray CWordArray CList CObList CPtrList CStringList CMap CMapWordToOb CMapWordToPtr CMapPtrToPtr CMapPtrToWord CMapStringToOb CMapStringToPtr CMapStringToString CInternetSession CInternetconnection CFtpConnection CGopherConnection CHttpConnection CFileFind CFtpFileFind CGopherFileFind CGopherLocator CCmdTarget CWinThread CWinApp COleControlModule CDocTemplate CMultiDocTemplate
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |