http://tikitak.narod.ru ---- Главная страница сайта
Шаг 28 - Пункт меню открыть документ как в AppWizard
Создание проекта
Работаем со старым. В ресурсах в меню необходимо создать пункт меню Open в меню File. И присвоить ему идентификатор ID_FILE_OPEN. Плюс к этому создать строковый ресурс с идентификатором AFX_IDC_OPEN и числом 61440. Это число обязательно такое. Содержание строкового ресурса Open File.
Создаем код
В таблице реакций на события создаем реакцию на пукт меню.
BEGIN_MESSAGE_MAP(CStep2App, CWinApp)
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
END_MESSAGE_MAP()
И процедуру чтения данных
void CMyDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << csDate;
}
else
{
ar >> csDate; // читаем
}
}
Описание
Как видете это всё. Первый идентификатор необходим для заголовка окна открытия файла. А дальше всё так. Вызываем процедуру открытия файла и MFC всё делает автоматом.
В процедуру Serialize добавили код чтения. Она вызывется из CWinApp::OnFileOpen.
Итак запускайте. Вызовете About, чтобы появился EMail и сохраните документ. Потом выберете пункт меню New для обновления экрана. На экране будет другая запись. А Вот теперь откройте и опять появиться EMail. Всё работает как часы.
Шпаргалка
Создай пункт меню и реакцию
BEGIN_MESSAGE_MAP(CStep2App, CWinApp)
..........
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
END_MESSAGE_MAP()
Создай процедуру чтения
void CMyDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
................
}
else
{
ar >> csDate; // читаем
}
}
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|