Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Содание, открытие, сохранение документа в Mfc 
:(
    Опции темы
netie
Дата 14.5.2005, 13:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте!
Подскажите как можно самому, без использования стандартных команд меню New, Open, Save, создавать, сохранять и открывать документы? Желательно с примером кода, который это делает.
  Вверх
Coocky
Дата 14.5.2005, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Смотри функцию Serialize

Производит сохранение и восстановление данных:

virtual void Serialize( CArchive& ar );
throw( CMemoryException );
throw( CArchiveException );
throw( CFileException );

Объект ar типа CArchive, с которым производятся операции сохранения и восстановления.

При создании своего класса Вы перегружаете функцию Seliarize и в новой функции не забываете вызвать функцию предка.
Код


class CMyObject : public CObject
{
public:
    #ifdef _DEBUG

        void AssertValid() const;
        void Dump(CDumpContext& dc) const;

    #endif
    void Serialize( CArchive& ar );
protected:
    DECLARE_SERIAL(CMyObject);
private:
    int x;
    int y;
};


void CMyObject::Serialize( CArchive& ar )
{
     CObject::Serialize( ar );
     if( ar.IsStoring() )
     ar << x << y;
     else
     ar >> x >> y;
}
IMPLEMENT_SERIAL(CMyObject,CObject,1);



Для использования возможностей сохранения Вы должны использовать следующие макроопределения

DECLARE_SERIAL
IMPLEMENT_SERIAL

Кроме того у класса должен быть конструктор без параметров. Для определения действия сохранения или удаления используется метод IsStoring класса CArhive.





--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1787 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.