Александр Вячеславович Фролов , Григорий Вячеславович Фролов - Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT
Название: | Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT | |
Автор: | Александр Вячеславович Фролов , Григорий Вячеславович Фролов | |
Жанр: | Литература ХX века (эпоха Социальных революций), Современные российские издания, C, C++, C#, MFC | |
Изадано в серии: | неизвестно | |
Издательство: | Диалог-МИФИ | |
Год издания: | 1996 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT"
Книга посвящена программированию в среде Microsoft Visual C++ с использованием библиотеки классов MFC. Для тех, кто уже освоил C, но еще не изучил C++, мы расскажем об основных особенностях этого языка. Представленные нами сведения помогут вам разобраться с библиотекой классов MFC.
На конкретных примерах мы научим вас в кратчайшие сроки создавать приложения для операционных систем Windows 3.xx, Windows 95 и Windows NT. Рассмотрим применение средств автоматизированного программирования MFC AppWizard и ClassWizard, позволяющих разрабатывать приложения в кратчайшие сроки.
Книга предназначена для всех, кто интересуется программированием в среде операционных систем Windows 3.xx, Windows 95 и Windows NT.
Читаем онлайн "Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT". [Страница - 109]
if (pDoc->arrayFig[i].cType == 'E') pDC->Ellipse(pDoc->arrayFig[i].xyFigCenter.x-10, pDoc->arrayFig[i].xyFigCenter.y-10, pDoc->arrayFig[i].xyFigCenter.x+10, pDoc->arrayFig[i].xyFigCenter.y+10);
else if (pDoc->arrayFig[i].cType == 'R') pDC->Rectangle(pDoc->arrayFig[i].xyFigCenter.x-10, pDoc->arrayFig[i].xyFigCenter.y-10, pDoc->arrayFig[i].xyFigCenter.x+10, pDoc->arrayFig[i].xyFigCenter.y+10);
}
}
Постройте проект и запустите полученное приложение. Вы можете свободно изменять размеры окна приложения, перекрывать его окно окнами других приложений, минимизировать и восстанавливать размеры окна. Изображение документа, которое вы нарисуете, не пропадет.
Вы даже можете распечатать нарисованный документ на принтере. А ведь вы не написали для этого не единой строки кода. Перед печатью документа его можно проверить в режиме предварительного просмотра (рис. 5.14). Для этого выберите из меню File строку Print Preview.
Рис. 5.14. Режим предварительного просмотра документа перед печатью
Создание нового документа
Документ, который вы можете создать в приложении Single, можно убрать, только полностью закрыв приложение. Функция создания нового документа не работает. Когда вы выбираете из меню File строку New или нажимаете кнопку , расположенную в панели управления приложения, внешний вид документа не изменяется.Оказывается, когда пользователь выбирает из меню File строку New, вызывается виртуальный метод OnNewDocument, определенный в классе CDocument. Если вы не переопределите этот метод, то по умолчанию он вызывает метод DeleteContents, и далее помечает его как чистый (пустой). Вы можете переопределить метод OnNewDocument в своем классе документа, чтобы выполнить его инициализацию. Требуется, чтобы вы вызывали из переопределенного метода OnNewDocument, метод OnNewDocument, определенный в базовом классе CDocument.
Когда пользователь создает новый документ в приложении, построенном на основе однооконного интерфейса, то на самом деле используется старый документ. Новый объект класса, представляющего документ, не создается. Метод OnNewDocument должен удалить содержимое документа и выполнить повторную инициализацию существующего объекта класса документ.
Из этого следует, что нельзя выполнять инициализацию документа в конструкторе класса документа, так как конструктор будет вызван только один раз за время работы приложения. Более правильно использовать для этой цели метод OnNewDocument.
Для приложений, использующих многооконный интерфейс, процедура создания нового документа отличается. Каждый раз, когда пользователь создает новый документ, создается новый объект класса документ. Процесс создания нового документа мы опишем в следующей главе.
//////////////////////////////////////////////////////////////
// Метод DeleteContents
void CSingleDoc::DeleteContents() {
// TODO:
// Очищаем документ, удаляя все элементы массива arrayFig.
// Метод RemoveAll определен в классе CArray
arrayFig.RemoveAll();
// Вызываем метод DeleteContents базового класса CDocument
CDocument::DeleteContents();
}
Сохранение и восстановление документа на диске
Построенное вами приложение можно использовать для рисования и печати документов, но оно не позволяет сохранять и загружать документ из файла на диске. Вы можете выбрать строку Save As (сохранить под именем) из меню File. На экране появится диалоговая панель Save As. В этой панели вы можете ввести имя файла, в котором надо сохранить документ. Однако несмотря на то, что файл создается, документ в него не записывается – файл остается пустым.Вы можете попытаться его открыть, выбрав из меню File строку Open. Однако единственным результатом будет изменение заголовка окна. Чтобы приложение обрело возможность сохранения документов в файле и последующего чтения, надо изменить метод Serialize класса документа CSingleDoc.
Метод Serialize вызывается всякий раз когда надо сохранить документ в файле на диске или загрузить его из существующего файла. В частности, метод Serialize вызывается, когда пользователь выбирает из меню File строки Save, Save As и Open. Основные принципы работы метода Serialize были рассмотрены нами в разделе “Запись и --">Книги схожие с «Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT» по жанру, серии, автору или названию:
Рувим Исаевич Курзинер - Реактивные двигатели для больших сверхзвуковых скоростей полета (Основы теории) Жанр: Литература ХX века (эпоха Социальных революций) Год издания: 1977 |