Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том1)" -> 112

Visual С++ 6. Полное руководство: В 2 т.(том1) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том1) — Бином, 2006. — 569 c.
Скачать (прямая ссылка): vicualcc2006t1.djvu
Предыдущая << 1 .. 106 107 108 109 110 111 < 112 > 113 114 115 116 117 118 .. 204 >> Следующая

При редактировании строки не нажимайте клавишу Enter. Когда текст достигнет правого края текстового поля, тогда он автоматически будет перенесен на следующую строку.
Вставьте строку "MiniDraw Files (*.drw)", отображаемую в списке Files of type (или Save as type) диалогового окна Open (или Save As) и определяющую стандартное расширение файлов программы. Затем вставьте " (. drw) " — стандартное расширение файлов. Если в процессе выполнения программы MiniDraw расширение файла при открытии или сохранении не указано, то в диалоговых окнах Open и Save As отобразится список всех файлов со стандартными расширениями, а в диалоговом окне Save As стандартное расширение файла будет добавлено к его имени.
Задание расширения файлов в новой программе
Приведенные инструкции относятся только к заданию стандартного расширения файлов в существующей программе. Это можно также сделать при создании приложения мастером АррWizard.
1. В диалоговом окне мастера AppWizard (Step 4) щелкните на кнопке Advanced..., чтобы открыть диалоговое окно Advanced Options, а затем откройте в этом окне вкладку Document Template Strings.
2. Введите в поле File extension стандартное расширение файла (без точки), например drw.
3. После ввода стандартного расширения мастер AppWizard автоматически введет описание расширения в поле Filter name (например, MiniDraw Files (*.drw)). Эта строка отображается в диалоговом окне Open (или Save As) в списке Files of type (или Save as type). При желании эту строку можно отредактировать.
4. Щелкните на кнопке Close и введите оставшуюся информацию в диалоговые окна мастера AppWizard.
Поддержка команд меню File
В предыдущей главе при добавлении команд Undo и Delete All в меню Edit для определения их обработчиков использовался мастер ClassWizard. Для команд New, Open..., Save и Save As... определять обработчики не требуется, так как они предоставляются MFC. В этом случае необходимо написать код для их поддержки. Библиотека MFC также предоставляет обработчики команд для работы с последними использованными файлами в меню File.
Функция OnFileNew класса CWinApp (от которого порождался класс приложения MiniDraw) обрабатывает команду New. Эта функция вызывает виртуальную функцию DeleteCcntents (см. гл. 11) для удаления текущего содержимого документа, а затем инициализирует новый документ.
Команда Open... обрабатывается функцией OnFileOpen класса CWinApp. Эта функция отображает стандартное диалоговое окно Open (рис. 12.2). Если выбрать
файл и щелкнуть на кнопке Open, то OnFileOpen откроет файл для чтения, а затем вызовет функцию Serialize класса документа (CMiniDrawDoc: : Serialize). Функция Serialize предназначена для фактического выполнения операции чтения. Функция OnFileOpen сохраняет полный путь к загруженному файлу и отображает имя файла в строке заголовка главного окна. (Обработчик команды загрузки последнего использованного файла открывает файл для чтения и вызывает функцию Serialize, не отображая диалоговое окно Open.)
Lookrc] sal
Filename- Г
ТЫЫШ: 'JMinDrswFte$('d>w)
Драп J
_rj Cancel
"4
Рис. 12.2. Стандартное диалоговое окно Open для открытия файла
Примечание
Если файл еще не был сохранен, то в поле File name диалогового окна Save As отобразится имя файла по умолчанию, которое создается добавлением стандартного расширения файла v(.drw для программы MiniDraw) к имени "Untitled".
Функция OnFileSave класса CDocument (от которого порожден класс документа программы MiniDraw) обрабатывает команду Save, а функция OnFileSaveAs класса CDocument - команду Save As... Если документ сохраняется впервые, то функции OnFileSaveAs и OnFileSave начинают работу с отображения стандартного диалогового окна Save As (рис. 12.3), позволяющего задать имя файла. Эти функции открывают файл для записи, а затем вызывают функцию CMiniDrawDoc:: Serialize для выполнения собственно операции записи. Они также сохраняют полный путь к файлу и отображают его имя в строке заголовка.
Примечание
Длина имени и расширения файла в Windows 95/98 и Windows NT не ограничена восемью и тремя символами соответственно. В Windows 95, например, имя файла может содержать до 255 символов. Если хотите быть уверенным в достаточном размере буфера, то для хранения имени файла и полного или частичного пути к файлу используйте одну из констант, определенных в файле Stdlib.h: _мах_ратн, _max_drive, _max_dir, _max_fname и
max ext.
Rename: JHBT
SsyeetiypK JMi
MiniDraw Files (".dm]
Cancel
A
Рис. 12.3. Стандвртное диалоговое окно Save As для сохранения файла
Сериализация данных документа
При создании программы MiniDraw мастер AppWizard определяет в файле MiniDrawDoc.cpp следующую минимальную реализацию функции Serialize.
1111111111111111111111111111111111111111111111111111111111111Ш II Сериализация класса CMiniDrawDoc
void CMiniDrawDoc::Serialize(CArchiveS ar) {
if (ar.IsStoring())
{
В эту функцию необходимо добавить собственный код для чтения или записи данных. MFC передает функции Serialize ссылку на экземпляр класса CArchive. Для открытого файла задается объект класса CArchive, предоставляющий набор функций для чтения и/или записи данных этого файла.
Предыдущая << 1 .. 106 107 108 109 110 111 < 112 > 113 114 115 116 117 118 .. 204 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100