Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » С/С++ » Мастер AppWizard обеспечивает реализацию проекта
Мастер AppWizard обеспечивает реализацию проекта
ZorkusДата: Понедельник, 01.02.2010, 19:15 | Сообщение # 1
.::Admin::.
Группа: Администраторы
Сообщений: 63
Репутация: 556
Статус:Offline
Мастер AppWizard обеспечивает реализацию проекта, формируя скелет программы.

Не приходилось ли вам испытывать какой-то душевный дискомфорт при мысли о подготовке собственных Windows-программ? Действительно, научиться программировать для Windows трудно - это общепризнанный факт. Однако существующие ныне инструменты позволяют облегчить данную задачу. Достаточно научиться работать с Microsoft Visual Basic, Microsoft Visual C++ или Borland Delphi, и вы сможете создавать собственные Windows-программы - от простейших до достаточно сложных, - причем в кратчайшие сроки.

Оптимальный способ научиться программировать в некоторой среде - это начать составлять собственные программы. В этой статье и ее продолжениях мы покажем, как средствами Visual C++ подготовить некоторую типовую Windows-программу. Будет подробно рассмотрен каждый этап процесса разработки, причем вы сможете повторить все на своем компьютере (для этого потребуется установленная версия Visual C++ 4.х). Легче будет тем, кто уже знаком с Cи++, однако совсем необязательно быть экспертом. Если же вы пока не готовы уверенно ответить, что такое виртуальная функция или как дается определение классу, то узнаете для себя много нового, если дополнительно изучите прилагаемые примеры.

Программа, которую мы собираемся сделать, - это вариант известной игры "крестики-нолики" (англ. название - tic-tac-toe) на квадратном поле со стороной 5 клеток. Победа присуждается игроку, который выстроит в линию последовательность четырех значков Х или О - по горизонтали, вертикали или диагонали. Программа будет рисовать на экране Х и О в ответ на щелчки левой клавишей мыши. Можно будет сохранять и возобновлять начатую игру. В процессе разработки этой программы вы на основании личного опыта познакомитесь с Visual C++. Также вы узнаете о важнейших элементах Microsoft Foundation Class (MFC) - библиотеки классов Cи++, созданной в Microsoft для программирования в среде Windows. И наконец, вы получите некоторое представление о самой системе Windows.

Первые шаги
Процесс разработки Windows-программы в Visual C++ начинается с создания нового проекта и подготовки набора исходных файлов. Раньше их приходилось делать вручную, теперь всю работу берет на себя "мастер" AppWizard.

AppWizard - это специальный инструмент для генерации программных текстов. В ходе его работы на экране отображается последовательность диалоговых окон, где задаются основные вопросы, касающиеся желаемых свойств создаваемой программы. Получив ответы, AppWizard генерирует текст базовой программы (скелет программы), содержащий все ее обязательные элементы.

Подготовка нового проекта в AppWizard выполняется следующим образом. В меню File (Файл) системы Visual C++ выберите команду New (Новый); укажите в диалоговом окне элемент Project Workspace (Рабочая среда проекта) и щелкните OK. Далее все выполняется в следующей последовательности.

1. В диалоговом окне New Project Workspace убедитесь, что в списке Type (Тип) выделен элемент AppWizard. Наберите в поле Name (Название) слово "Tic" (без кавычек). Программа и ее исходный текст будут занесены в каталог, название которого указано в поле Location (Расположение). При желании разместить ее в другом месте введите свой адрес. После этого щелкните на кнопке Create (Создать) - и AppWizard начнет работать.
2. В диалоговом окне Step 1 (Операция 1) выберите элемент Single Document (Один документ), чтобы сообщить "мастеру" AppWizard о вашем намерении создать программу в соответствии со спецификацией SDI (single-document interface - интерфейс для обработки только одного документа). Особенность SDI-программ заключается в том, что при их работе допускается одновременное открытие лишь одного документа. С помощью AppWizard можно также создавать программы со спецификацией MDI (multiple-document interface - интерфейс для обработки нескольких документов), где одновременно можно открывать сразу несколько документов. Notepad - это SDI-программа, а Microsoft Word и Excel - примеры MDI-программ. Для перехода к следующему диалоговому окну щелкните на кнопке Next (Далее).
3. В диалоговом окне Step 2 убедитесь, что на вопрос "What database support would you like to include?" (Базу данных какого типа следует использовать?) указан ответ None (Отсутствует). Щелкните на кнопке Next.
4. В диалоговом окне Step 3 на вопрос "What OLE compound document support would you like to include?" (Какой тип обслуживания OLE-объектов предполагается использовать) укажите вариант ответа None. Также проверьте, чтобы не было пометок выбора для элементов OLE Automation (OLE-автоматизация) и OLE Controls (Управляющие элементы OLE).
5. В диалоговом окне Step 4 проверьте, чтобы элементы Docking toolbar (Выравнивание панели инструментов вдоль границы окна), Initial status bar (Отображение строки состояния при загрузке программы) и Printing and print preview (Средства для организации печати и предварительного просмотра) были помечены значком выбора, а остальные - нет. Теперь нажмите кнопку Advanced (Дополнительно).
6. В диалоговом окне Advanced Options (Дополнительные параметры) введите строку "tic" (без кавычек) в окошке, обозначенном как File Extension (Расширение файла). Ваша программа будет присоединять сочетание символов TIC в качестве расширения для имен файлов своих рабочих документов. Чтобы закрыть окно, щелкните кнопку Close (Закрыть), а затем нажмите Next.
7. В диалоговом окне Step 5 выберите элементы (в ответ на запрос, вставлять ли комментарии в исходный файл) Yes, please (Да, пожалуйста) и As a shared DLL (Как совместно используемая DLL). Снова щелкните Next.
8. В диалоговом окне Step 6 щелкните кнопку Finish (Готово). В появившемся диалоговом окне отображены окончательные сведения о файлах, которые будут сформированы "мастером" AppWizard на следующем этапе. Проверьте еще раз. После нажатия OK всю остальную работу "мастер" выполнит самостоятельно.

По завершении работы AppWizard можно переходить к сборке (build) (компиляции и компановке) сформированных программных модулей. Выберите в меню Build системы Visual C++ команду Build Tic.exe. После окончания ее работы можно будет запустить программу на исполнение, выбрав в меню Build команду Execute Tic.exe (Исполнить Tic.exe). На экране появится рабочее окно программы. Его содержимое, именуемое клиентской областью (client area), еще ничем не заполнено. Дело в том, что пока еще не подготовлен программный модуль, отвечающий за вывод в рабочее окно программы. Данное окно называется frame window (базовое окно) - термин MFC для обозначения окон самого верхнего уровня, служащих контейнерами для размещения панелей инструментов, строк состояния и прочих объектов.

Обратите внимание, мы еще не внесли ни одной собственной строки, а программа уже обладает богатыми функциональными возможностями. Например, можно отсоединить панель инструментов от верхней кромки окна и перенести ее в любое другое место экрана. Ее можно присоединить к другой кромке базового окна либо расположить в любом месте собственного базового окна. В строке состояния отображаются контекстно-зависимые подсказки, касающиеся команд общего меню. Кроме того, многие команды меню уже работают.

Если AppWizard подготавливает текст программы, отвечающий за создание меню, панели инструментов и строки состояния, то их работоспособность достигается большей частью средствами MFC. Многие функции создаваемой прикладной программы уже реализованы и хранятся в библиотеке классов. Именно поэтому AppWizard в состоянии сделать так много при минимальных усилиях. Если выбросить из программы все дополнительное, что внес AppWizard, оставив только главное, ее объем сократится до нескольких десятков строк. Для создания аналогичной программы собственными силами, без библиотеки MFC, вероятно, потребовалось бы написать несколько десятков тысяч строк.

Документы, средства их отображения и другие классы
Прежде чем двигаться дальше, давайте рассмотрим, какие программы подготовил AppWizard. У себя на экране вы обязательно встретите окно, которое называется Project Workspace (Рабочая среда проекта). Оно может располагаться отдельно от главного окна Visual C++ либо быть состыкованным с его внутренней кромкой. В любом случае если щелкнуть по маленькому значку "плюс" рядом с именем Tic classes (классы программы Tic), то появится список созданных в AppWizard классов Cи++, образующих основу нашей программы. А если щелкнуть на значке "плюс" рядом с любым именем класса, то появится список функций этого класса и его компонентов (function and data members). В этом списке не указываются функции и компоненты, которые наследованы из родительского класса.

На данный момент пока нет явной необходимости разбираться, что записано в каждой строке подготовленного в AppWizard кода. Важно понять общий принцип построения программы. Структура Tic строится из пяти классов, каждый из которых создан на основе своего базового класса, взятого из MFC. "Мастер" AppWizard подготовил для нас следующие классы:

* CTicApp относится к работе самой программы;
* CTicDoc занимается обработкой рабочих документов;
* CTicView осуществляет отображение документов в рабочем окне;
* CMainFrame обслуживает работу базового окна программы;
* CAboutDlg обеспечивает работу диалогового окна About (О программе).

Значительная часть предстоящей работы будет относиться к классу обработки документов, CTicDoc, и классу их отображения, CTicView. В сгенерированной "мастером" AppWizard программе данные хранятся в объекте document, а за их отображение отвечает объект view. Эти и другие объекты создаются в процессе запуска программы на исполнение. Фактическим же местом вывода отображаемых данных является окно просмотра. Для SDI-программ данное окно перекрывает видимую клиентскую часть базового окна, которое появляется после компановки подготовленной в AppWizard программы. То, что выглядит как клиентская часть окна - светлая область, обрамленная сверху панелью инструментов, а снизу строкой состояния, - фактически является окном просмотра.

Нам предстоит следующее: наполнить содержанием класс document, где хранились бы данные о крестиках и ноликах; настроить класс view, который отвечал бы за отображение на экране Х и О; а также внести в класс document средства, позволяющие узнавать, когда нужно вставлять новые Х или О. Используемые в программе данные будут храниться в виде массива полей длиной 1 байт, каждый из которых описывает текущее состояние отдельной клетки игрового поля; этот массив представляет собой элемент данных (data member) класса document. В любой момент класс view может запросить у класса document сведения по каждой клетке и отобразить их на экране. Кроме того, он добавляет в класс document сведения о крестиках и ноликах, когда пользователь щелкает по пустой клетке.

Если вы хотите посмотреть, как выглядит программный модуль, сгенерированный AppWizard для реализации каждого класса, представленного в окне Project Workspace, то это очень просто. Исходный текст любой принадлежащей функции класса можно увидеть, если дважды щелкнуть на ее имени. Не отчаивайтесь, если в этих текстах еще не все понятно; любой человек, впервые увидевший созданные в AppWizard тексты программ, обычно находит их несколько странными. Однако все встанет на свои места, как только вы немного наберетесь практического опыта при работе с Visual C++ и MFC.

Дальнейшие планы
Для начала хватит. В следующей части мы дополним программу модулями рисования игрового поля и отслеживания щелчков мыши. Помимо сведений об особенностях вывода на экран в программах Windows вы познакомитесь с другим полезным инструментом Visual C++, называемым "мастер" ClassWizard; он предназначен для решения тех задач, которые AppWizard оставляет без внимания. ClassWizard упрощает выполнение таких рутинных процедур, как задание определений для новых классов, ввод дополнительных функций и элементов данных (data member) в уже существующие классы и многое другое. До следующей встречи.

 
ГарфилдДата: Понедельник, 01.02.2010, 23:19 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус:Offline
Спасибо за пост! Узнал много нового, и начал делать всё как тут написано! Спасибо!
 
ZorkusДата: Понедельник, 08.02.2010, 14:19 | Сообщение # 3
.::Admin::.
Группа: Администраторы
Сообщений: 63
Репутация: 556
Статус:Offline
Гарфилд, буду продолжать в том же духе помогать другим, и чтоб они узнавали много нового
 
Форум » Программирование » С/С++ » Мастер AppWizard обеспечивает реализацию проекта
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2006
Создать бесплатный сайт с uCoz