http://tikitak.narod.ru ---- Главная страница сайта
Шаг 74 - Тренировка - приложение Pr2
Проблемма 2000 позади. Спасибо кофе :-)
Создаем проект
Ну чтоже, запускайте VC++ и MFC AppWizard. Имя приложению дайте PR2. Так и будем их называть :-). В первом шаге тип приложения надо дать на основе одного документа Single Document. Дальше до 4 шага идем без изменений. А вот Step4 нам нужен. Так как наше приложение будет записывать в файл, то нам необходимо решить с расширением. Вот как это делается.
На Step4 жмем на Advanced и поле File extension указываем расширение. Дальше все можно не менять Finish это то, что нужно. Следует отметить, что слово Finish здесь понимается в положительном плане :-). А нет так как делаешь что - то , а потом - всё финиш. Если Вам это знакомо.
Скомпилируйте и запустите. А потом выберите пункт меню Save As.. и в поле Save as type вы увидите Ваше расширение. Где хранится это расширение ? В ресурсах. Откройте их. Дальше откройте String Table и идентификатор IDR_MAINFRANE. Там такая строка
IDR_MAINFRAME 128 pr2\n\nPr2\nPr2 Files (*.pr2)\n.pr2\nPr2.Document\nPr2 Document
Вон видите? О данном идентификаторе более полно в подробностях.
Создаем код
Итак мы будем записывать и считывать 3 переменные типа CString. Все данные программы должны храниться в классе документа. Он у нас называется CPr2Doc туда мы и должны их добавить. Помните как в PR1 ?. Правой кнопкой мыши на CPr2Doc и Add member variable. Их нужно три m_string1 m_string2 m_string_3. В файле pr2Doc в описании класса документа добавятся строки вот так
.....
// Implementation
public:
CString m_string3;
CString m_string2;
CString m_string1;
virtual ~CPr2Doc();
#ifdef _DEBUG
virtual void AssertValid() const;
..........
Инициализировать их нужно в OnNewDocument класса документа. Перейдите в него и внесите код.
BOOL CPr2Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
m_string1="String1";
m_string2="String2";
m_string3="String3 Finish String";
return TRUE;
}
А вот теперь и будем организовывать процедуры записи. Они реализуются в функции Seliarize класса документа. Найдите её в ClassView и внесите изменения.
/////////////////////////////////////////
// CPr2Doc serialization
void CPr2Doc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << m_string1;
ar << m_string2;
ar << m_string3;
}
else
{
ar >> m_string1;
ar >> m_string2;
ar >> m_string3;
}
}
////////////////////////////////////////
Запускате проект и сохраните файл под именем 1. Что произойдет ? В каталоге проекта появится файл с именем 1.pr2. Расширение автоматически связано с файлом. В exploler два раза шелкните на имени файла и откроется Ваше приложение.
Откройте файл 1.pr2 в тестовом редакторе там будет примерно вот что
String1String2String3 Finish String
Мы с Вами создали приложение, которое умеет сохранять данные, читать данные и расширение связано с программой. Неплохо :-)
Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|