ebook img

Технологии программирования. Программирование графических интерфейсов: Microsoft Visual Studio и Borland Delphi: Учебное пособие PDF

205 Pages·2013·2.058 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Технологии программирования. Программирование графических интерфейсов: Microsoft Visual Studio и Borland Delphi: Учебное пособие

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Пермский национальный исследовательский политехнический университет» А.М. Ноткин ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ ИНТЕРФЕЙСОВ: Microsoft Visual Studio и Borland Delphi Утверждено Редакционно-издательским советом университета в качестве учебного пособия Издательство Пермского национального исследовательского политехнического университета 2013 УДК 681.3 Н85 Рецензенты: канд. техн. наук, ст. научный сотрудник ТиИС ИМСС Уральского отделения РАН Г.Ф. Масич; канд. техн. наук, доцент кафедры информационных технологий и автоматизированных систем Пермского национального исследовательского политехнического университета О.А. Полякова Ноткин, А.М. Н85 Технологии программирования. Программирование графических интерфейсов : Microsoft Visual Studio и Borland Delphi : учеб. пособие / А.М. Ноткин. – Пермь : Изд-во Перм. нац. исслед. политехн. ун-та, 2013. – 205 с. ISBN 978-5-398-00972-9 Пособие состоит из двух частей. В первой части рассматри- ваются вопросы создания программ в среде Microsoft Visual C++, во второй – в RAD среде Borland Delphi. Функции API, классы MFC, классы VCL, графический вы- вод, программирование диалогов, сохранение и восстановление объектов рассматриваются на примерах, сопровождаемых необ- ходимыми теоретическими сведениями. Пособие предназначено для освоения основных принципов и получения практических навыков разработки приложений с графическим интерфейсом в современных средах программиро- вания и рекомендуется студентам направления «Информатика и вычислительная техника» как для самостоятельной работы, так и в рамках аудиторных занятий. УДК 681.3 ISBN 978-5-398-00972-9 © ПНИПУ, 2013 ОГЛАВЛЕНИЕ Часть I. Разработка графических интерфейсов в среде Microsoft VisualC++.................................................................6 1. Приложения Win32 API..............................................................................6 1.1. Создание нового проекта программы.......................................................6 1.2. Просмотрщик рабочего пространства Workspace Viewer......................7 1.3. Среда Win32.................................................................................................9 1.4. Классы и объекты Win32..........................................................................10 1.5. Программа для Windows...........................................................................11 1.6. Регистрация класса окна...........................................................................14 1.7. Сообщения и функция обратного вызова...............................................20 1.8. Создание главного окна приложения......................................................23 1.9. Цикл обработки сообщений.....................................................................26 1.10. Пример создания простого Win32 приложения в среде Microsoft Visual Studio................................................................28 Вопросы для самоконтроля.............................................................................30 Упражнения......................................................................................................31 2. Программирование графики...................................................................32 2.1. Графический интерфейс устройства (GDI).............................................32 2.2. Контекст устройства (DC)........................................................................32 2.3. Вывод текста..............................................................................................34 2.4. Рисование графических примитивов.......................................................36 2.5. Мастер ClassWizard...................................................................................38 2.6. Пример создания простейшего приложение Win32 с графикой..........41 Вопросы для самоконтроля............................................................................47 Упражнения......................................................................................................48 3. Простое MFC приложение........................................................................49 3.1. Microsoft Foundation Classes.....................................................................49 3.2. Простейшая MFC-программа...................................................................49 3.3. Классы графического интерфейса...........................................................51 3.4. Графические объекты...............................................................................52 3.5. Пример содания приложения с графимой..............................................57 3.6. Упражнения...............................................................................................64 4. Программирование элементов управления..........................................66 4.1. Элементы управления...............................................................................66 4.2. Создание простого SDI-приложение.......................................................69 4.3. Пример создания простого SDI-приложения.........................................73 3 4.4. Использование редактора ресурсов.........................................................78 4.5. Пример использования редактора ресурсов...........................................80 4.6. Пример создания и использования диалоговых окон...........................81 4.7. Создание приложения типа Dialog based................................................84 5. Диалоговые окна........................................................................................89 5.1. Блоки диалога............................................................................................89 5.2. Класс CDialog и создание диалоговых окон...........................................90 5.3. Обмен данными посредством диалогового окна...................................92 5.4. Использование ClassWizard.....................................................................95 5.5. Пример создания простой программы для обмена данными между диалоговыми окнами...................................................................97 6. Хранение данных в программе MFC.....................................................99 6.1. Хранение данных в памяти – коллекции................................................99 6.2. Пример создания GUI-программы, использующей коллекции.........100 6.3. Сохранение данных в файле..................................................................102 6.4. Пример создания программы с сохранением данных в файле..........104 7. Программирование приложений с архитектурой «документ–вид»............................................................................................106 7.1. Архитектура «документ–вид»................................................................106 7.2. Классы SDI-приложения с архитектурой «документ–вид»...............107 7.3. Объекты и классы архитектуры «документ–вид»................................107 7.4. Вид на базе класса CListView...............................................................111 7.5. Сериализация...........................................................................................114 7.6. Работа с документами.............................................................................120 7.7. Пример создания приложения с архитектурой «документ–вид»......126 Часть 2. Разработка приложений в RAD-среде Borland (Turbo) Delphi.............................................131 8. IDE Delphi..................................................................................................131 8.1. Инструменты Delphi...............................................................................131 8.2. Обработка событий в Delphi..................................................................132 8.3. Форма.......................................................................................................133 8.4. Создание простого приложения.............................................................133 9. Программирование элементов управления........................................142 9.1. Метка – компонент TLabel.....................................................................142 9.2. Класс TCustomEdit..................................................................................144 9.3. Однострочный текстовый редактор – компонент TEdit.....................146 9.4. Многострочный текстовый редактор – компонент TMemo...............148 9.5. Кнопка – компонент TButton.................................................................150 4 9.6. Пример разработки программы с элементами управления................152 Вопросы для самоконтроля...........................................................................154 Упражнения....................................................................................................155 10. Списки TListBox и TComboBox...........................................................156 10.1. Компонент TListBox.............................................................................156 10.2. Компонент TComboBox........................................................................157 10.3. Класс TStrings........................................................................................159 10.4. Пример создания приложения.............................................................160 Вопросы для самоконтроля...........................................................................163 11. Программирование графики...............................................................164 11.1. Классы графического интерфейса.......................................................164 11.2. Пример создания приложения с графикой.........................................168 11.3. Графические примитивы......................................................................170 11.4. Пример создания приложения с графическими примитивами........174 11.5. Рисование фигур....................................................................................176 11.6. Пример создание приложения с графическими фигурами..............180 Вопросы для самоконтроля...........................................................................181 12. Сохранение объектов.............................................................................183 12.1. Сохранение объектов в коллекциях....................................................183 12.2. Сохранение объектов в файлах-сериализация...................................183 12.3. Форма.....................................................................................................184 12.4. Создание меню......................................................................................187 12.5. Пример создания диалоговой программы для работы с объектами.............................................................................................187 12.6. Методические указания для программирования диалогов..............189 Вопросы для самоконтроля...........................................................................191 13. Механизмы действий и Drag-and-Drop...............................................193 13.1. Механизм действий...............................................................................193 13.2. Технология «Drag-and-Drop»...............................................................194 13.3. Обработка исключительных ситуаций................................................199 13.4. Пример создания более сложной диалоговой программы................202 Методические указания.................................................................................203 Вопросы для самоконтроля...........................................................................203 5 ЧАСТЬ I. РАЗРАБОТКА ГРАФИЧЕСКИХ ИНТЕРФЕЙСОВ В СРЕДЕ MICROSOFT VISUALC++ 1. ПРИЛОЖЕНИЯ WIN32 API 1.1. Создание нового проекта программы Для создания нового проект выполните следующие дейст- вия. В меню File выберите пункт New. Поскольку ничего в среде разработки нет, то система предложит вам создать новый про- ект. Появится следующий диалог (рис. 1.1). Рис. 1.1 Для создания обычного приложения Win32 мы выберем мастера разработки Win32 Application. Основное назначение мастеров – это облегчить написание программы путем генерации некоторых кусков программы, на- пример, функций начала программы и завершения программы, 6 деклараций классов и настроек компилятора. Мастера для дру- гих типов проекта способны генерировать автоматически более сложные вещи, например, базы данных и блоки диалога, но здесь мы их касаться не будем. Введем имя проекта и его местоположение на диске. На- жав OK, запустим мастера генерации приложений. Он предло- жит нам выбрать один из следующих генерируемых им разно- видностей проекта Win32 Application. Выберем тип генерируе- мого проекта «An empty project». Нажав Finish, дадим системе команду на генерацию каркаса приложения. Сгенерировав про- ект, система предоставит вам информацию о нем. 1.2. Просмотрщик рабочего пространства Workspace Viewer Workspace Viewer по умолчанию расположен в левом углу окна среды разработки ипредназначен для просмотра классов, функций, глобальных переменных, файлов заголовков и исход- ных кодов, ресурсов, которые используются в данном проекте. Переключаясь от одной вкладки к другой, вы можете про- сматривать список классов, глобальных функций и переменных или ресурсов, сгруппированных по типу, или просматривать файлы проекта программы. Для любого класса можно просмот- реть список полей и методов внутри него: достаточно щелкнуть на плюсе перед именем класса, и будет выведен список методов и переменных классов, а также список классов, структур, пере- числений, определенных внутри класса. Щелкнув на имени класса правой клавишей мышки, увидим всплывающее меню, которое позволяет нам получить информацию о классе, добавить в него новые методы, переменные (рис. 1.2). Во время просмотра методов и переменных класса мы мо- жем, щелкнув левой клавишей мыши на имени метода или пере- менной, получить информацию о них (рис. 1.3). 7 Рис. 1.2 Рис. 1.3 Для создания новой переменной или функции вы должны набрать ее описание на глобальном уровне и написать ее код, подчиняясь тем же требованиям, какие применяются в компиля- торах C/C++ для DOS. 8 Новый класс, его определение, декларации методов и пе- ременных, исходный код методов вы также можете набрать са- мостоятельно, однако среда разработки может предложить вам здесь существенную помощь. 1.3. Среда Win32 Основное принципиальное отличие DOS и Windows – это поддерживаемые методологии программирования. DOS под- держивает и ориентирована на программы и языки структурного программирования, а Windows – на программы и языки объект- но-ориентированного программирования. Другое важное свойство Windows: эта система поддержива- ет объектное программирование и языки, но объектно-ориен- тированное программирование поддерживается не полностью. В первую очередь это связанно с тем, что Windows планировалась как система, пригодная для использования и процедурными (C, Pascal), и объектно-ориентированными (C++, Smalltalk, Pascal-Delphi) языками. В процедурных языках, перечисленных выше, те свойства, которыми обладает любая обьектная система, а именно: сокрытие данных в объектах и классах, сообщения как метод взаимодействия между объектами, классы, объекты, мето- ды классов без наследования относительно легко применимы и могут быть добавлены без серьезных изменений языка и средств разработки. Однако основные черты объектно-ориентированного про- граммирования – наследование и динамическое связывание ме- тодов класса в процедурных языках практически невозможно реализовать, не изменив сам язык. Поэтому в среде Windows чрезвычайно развито такое свойство объектного программирования, как сокрытие данных и механизм сообщений, а наследование практически отсутствует (исключение – окна Windows, у них есть это свойство, но ос- тальное множество объектов этой среды им не обладает). 9 Отсюда следует другое важное свойство: система Windows должна поддерживать использование объектов и объектных технологий в любом процедурном языке, но не в ущерб объект- но-ориентированным языкам и технологиям. 1.4. Классы и объекты Win32 В системе Win32 существуют много самых разнообразных классов (то есть множества объектов, имеющих общую структу- ру и поведение), наследование от этих классов не поддержива- ется, кроме абстрактного класса окна, который поддерживается для однократного наследования глубиной 1. В системе есть не- сколько классов, унаследованных от абстрактного класса окна, которые мы можем использовать в своей программе. Изменение состояния объектов и получение информации об объектах в любом классе, кроме классов, производных от оконных, возможно с использованием множества функций, пре- доставляемых операционной системой, и только с их помощью. Внутренняя структура и данные любого объекта Windows и лю- бого класса Windows защищены от вмешательства со стороны прикладной программы средствами Windows и аппаратно. Для любого объекта, производного от оконного класса, можно изме- нить состояние объекта и получить информацию об объекте ли- бо вызовом функции Windows, либоотправкой этому объекту сообщения, при этом любой вызов функции Windows может быть продублирован отправкой соответствующего сообщения. Каждый объект Win32в системе идентифицируется своим номером-дескриптором (handle/хендл), который уникален для объектов каждого класса операционной системы и каждого класса, производного от оконного класса, но для объектов раз- ных классов возможна, хотя и мало вероятна, ситуация, когда этот номер совпадет. При вызове соответствующей функции Win32 для соответ- ствующего классаэтот номер будет одним из параметров функ- 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.