C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 28 - Пункт меню открыть документ как в AppWizard / MFC шаг за шагом / Visual C++

Шаг 28 - Пункт меню открыть документ как в AppWizard

Создание проекта

Продолжаем развитие нашего проекта. В ресурсах в меню необходимо создать пункт меню Open в меню File. И присвоить ему идентификатор ID_FILE_OPEN.

28_1.gif (4480 b)

Создаем код

В таблице реакций на события создаем реакцию на пункт меню.

BEGIN_MESSAGE_MAP(CStep2App, CWinApp)
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) // пункт меню New
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) // пункт меню Open
END_MESSAGE_MAP()

И добавим чтение данных.

void CMyDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring()) // если сохранение
{
ar << csDate; // записываем
}
else
{
ar >> csDate; // для чтения
UpdateAllViews(NULL); // обновить виды

}
}

Вот так будет все это работать.

28_2.gif (11152 b)

Описание

Учтите на всякий случай, что это учебный пример для демонстрации механизмов MFC. Как видите это всё. Первый идентификатор необходим для заголовка окна открытия файла. Вызываем процедуру открытия файла и MFC всё делает автоматом.

В процедуру Serialize добавили код чтения. Она вызывется из CWinApp::OnFileOpen. Итак, запускайте. Вызовете About, чтобы появилась надпись Первые шаги и сохраните документ. Потом выберете пункт меню New для обновления экрана. На экране будет другая запись. А Вот теперь откройте и опять появиться Первые шаги. Всё работает как часы.

Шпаргалка

Создай пункт меню и реакцию.

BEGIN_MESSAGE_MAP(CStep2App, CWinApp)
........
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) // пункт меню Open
........
END_MESSAGE_MAP()

Создай процедуру чтения.

void CMyDoc::Serialize(CArchive& ar)
{
.......
else
{
ar >> csDate; // для чтения
UpdateAllViews(NULL); // обновить виды
}
}

Загрузить проект | | |
Автор Каев Артем.
[AD]