Профессор А.А. Емельянов

Столичная финансово-промышленная академия

Емельянов А.А.

Сальников Ю.Н.

Емельянова Н.З.

Базы программирования для
информатиков и инженеров.

Часть 2: Прикладное программирование в Windows

Москва, 2004


УДК 681.3.06

ББК 24.4.9

Е 60

Емельянов А.А., Сальников Ю.Н., Емельянова Н.З. Базы программирования для информатиков и инженеров. Часть 2: Прикладное программирование в Windows / Под ред. проф. А Профессор А.А. Емельянов.А. Емельянова. – М.: МФПА, 2004. – 351 с.

Рецензенты:

1) Шориков Андрей Федорович, д.ф.-м.н., доктор, зав. кафедрой Информационных систем в экономике, Уральский муниципальный экономический институт, г. Екатеринбург.

2) Кафедра Информационных систем в экономике и управлении, Санкт-Петербургский муниципальный инженерно-экономичес-кий институт (ИНЖЭКОН).

В первой части книжки в периодической форме излагаются базы программирования Профессор А.А. Емельянов Windows-приложений на языках С/С++. Тщательно рассмотрены способности операционной системы в части API. Даются советы: как следует программировать, как разрабатывать программку, как ее писать. Практические примеры различной трудности нацелены на работу в среде Microsoft Visual C++.

Все учебные проекты, изложенные в книжке, отлажены создателями в Windows Профессор А.А. Емельянов XP (всего – 42 проекта различной трудности). Потому книжка может быть неплохой основой для сотворения практикумов по дисциплинам «Операционные системы, среды и оболочки», «Высокоуровневые способы информатики и программирования», «Архитектура информационных систем».

Рекомендовано учебно-методическим объединением вузов по образованию в области прикладной информатики в качестве учебного пособия студентам, обучающимся по специальностям «Прикладная Профессор А.А. Емельянов информатика в экономике» и «Информационные системы».

Ó Емельянов А.А., 2004

Ó Сальников Ю.Н., 2004

Ó Емельянова Н.З., 2004

Ó Столичная финансово-промышленная академия, 2004


Содержание

Введение

Глава 1. Модель программирования приложений

1.1. Потребительские характеристики Windows

1.2. Процессы в Windows и потоковая многозадачность

1.3. Динамические библиотеки

1.4. Программное обеспечение для сотворения Win-приложений

Глава 2. Обзор способностей программирования

2.1. Общий взор на программирование в Windows

2.2. Взаимодействие Windows с программкой

2.3. Win32 API: прикладной интерфейс для Профессор А.А. Емельянов Windows

2.4. Составляющие окна

2.5. Базы приложений Windows

2.6. Каркас приложения Windows

2.7. Определение класса окна

2.8. Создание окна

2.9. Цикл обработки сообщений

2.10. Оконная функция

Глава 3. Обработка сообщений Windows

3.1. Что такое сообщения?

3.2. Обработка нажатая кнопок

3.3. Обработка сообщений WM_PAINT

3.4. Обработка сообщений «мыши»

3.5. Генерация сообщения WM_PAINT

3.6. Генерация сообщений таймера

Глава 4. Ресурсы и меню

4.1. Окна сообщений MessageBox

4.2. Представляем меню

4.3. Внедрение ресурсов

4.4. Включение меню в программку. Обработка команд

4.5. Включение акселераторов сменю

4.6. Загрузка таблицы акселераторов

Глава 5. Создание Профессор А.А. Емельянов диалогов

5.1. Взаимодействие Win-диалогов с юзером

5.2. Модальные диалоги: обработка сообщений

5.3. Активизация и создание простого диалога

5.4. Определение ресурсов диалога

5.5. Оконная функция диалога

5.6. Базы работы со перечнями

5.7. Инициализация перечня и выбор частей

5.8. Окно ввода

5.9. Внедрение немодального диалога

Глава 6. Графические образы, иконки и курсоры

6.1. Иконка и курсор

6.2. Определение малой иконки

6.3. Работа с растровыми изображениями

6.4. Работа с несколькими растровыми изображениями

Глава 7. Более тщательно об элементах управления

7.1. Работа Профессор А.А. Емельянов с контрольными тумблерами

7.2. Статические элементы

7.3. Работа с селекторными клавишами

7.4. Линейки прокрутки


Введение

Современный спец по прикладной информатике либо инженер по информационным системам должен уметь программировать. Ему не непременно быть проф системным программером либо «хакером». Дело в том, что и при разработке, и при эксплуатации сложных компьютерных систем требуется адаптировать соответственное программное обеспечение. При всем этом Профессор А.А. Емельянов необходимо написать либо поменять какую-то программку, сделать новый программный интерфейс для работы с профессионально-ориентированной it системой, перепрограммировать систему контроля данных, написать новейшую программку загрузки базы данных и др.

Практика указывает, что в ближайшее время большая часть таких работ проводится с применением языка «С++» (по-русски произносится как «си Профессор А.А. Емельянов плюс плюс»), который в текущее время является одним из самых фаворитных языков программирования. Это универсальный язык, для которого свойственны экономичность выражения, современный поток управления и структуры данных, обеспеченный набор операторов. Язык «C++» не является ни языком «очень высочайшего уровня», ни «большим» языком, и не предназначается для некой Профессор А.А. Емельянов специальной области внедрения, но отсутствие ограничений и общность языка делают его более комфортным и действенным для многих задач, чем языки, предположительно более массивные. По различному количеству средств, предоставляемых программерам, его можно считать одним из самых действенных языков, но, время от времени, – и самых красивых, и самых сложных. Все перечисленные происшествия Профессор А.А. Емельянов разъясняют, почему нами этот язык избран в качестве базисного.


Беря во внимание долголетний опыт программирования на этом языке при разработке самых разных приложений, мы разделили весь процесс обучения программированию на «С++» студентов в течение 2-3 семестров на несколько учебных курсов, структурно-логически связанных последующим образом:

В язык «C++» в качестве основного, базисного Профессор А.А. Емельянов средства включен более старенькый язык «C» (по-русски произносится как «си», потому некие создатели пишут его заглавие как «Си»), который сначало предназначался для написания операционной системы Unix; он был разработан и реализован Деннисом Ричи. Операционные системы Unix и Windows, компиляторы с языка «C++» и большая часть прикладных Профессор А.А. Емельянов программных систем на данный момент создаются на языке «C++». Этот язык, но, не связан с какими-либо определенными аппаратными средствами либо системами, и на нем просто писать программки, которые можно пропускать без конфигураций на любом компьютере либо ЭВМ, имеющей C-компилятор.

Целью первого учебного курса «Основы алгоритмизации и Профессор А.А. Емельянов программирования» является обучение основам программирования. В это время студент, не будучи асом алгоритмизации, не сумеет по достоинству оценить способности объектно-ориентированного программирования, предоставляемые «C++». Потому поначалу обучение ведется на традиционном языке «С» (он заходит в состав хоть какой версии «С++) с наименьшим привлечением дополнительных средств, имеющихся в «C++».

2-ой Профессор А.А. Емельянов учебный курс «Прикладное программирование в Windows» предназначен для развития способностей реализации реальных проектов, сотворения Windows-приложений (Windowsapplications). При всем этом употребляются все ранее изученные средства. В согласовании с этими 3-мя курсами учебно-методическое обеспечение также разбито на 3 части.

В итоге третьего учебного курса студенты, получившие значительный опыт по описанию алгоритмов Профессор А.А. Емельянов средствами обычного языка «C», улучшают свое мастерство, и средствами объектно-ориентированного программирования языка «C++» делают программки более действенными и малогабаритными.

Мы не претендуем на оригинальность изложения теоретического материала по программированию. При разработке данного учебного пособия нами использовались не только лишь собственные разработки, да и данные из книжек, пособий и справочников узнаваемых Профессор А.А. Емельянов создателей: М.И. Болски, Б. Кернигана, Д. Кнута, Д. Дж. Круглински, А.Б. Крупника, Д. Ритчи, Г. Шилдта. Потому учебное пособие можно рассматривать и как хрестоматийное издание.

В качестве основного методического приема употребляется прагматический подход, изложенный в известной книжке Андре Ламота «Программирование игр для Windows: советы профессионала» (М.: Издательский Профессор А.А. Емельянов дом «Вильямс», 2004), – это обучение на «живых» примерах. Дело в том, что максимум всех параметров и достижений программирования (умственные системы, базы данных, мультипроцессинг и многозадачность, динамические библиотеки, explorer и др.) применяется в очень сложных кибернетических системах, в том числе, – в проф тренажерах, применяемых в управлении экономикой, астронавтике, военном Профессор А.А. Емельянов деле, авиации и службах МЧС.

Книжка рекомендована учебно-методическим объединением вузов по образованию в области прикладной информатики в качестве учебного пособия студентам, обучающимся по специальностям «Прикладная информатика в экономике» и «Информационные системы».

Редактор,

доктор А.А. Емельянов


Глава 1. Модель программирования приложений

1.1. Потребительские характеристики Windows

Эта книжка является практическим управлением по програм­мированию в Профессор А.А. Емельянов Windows. В ней тщательно не рассматриваются теоретические нюансы этой системы, кроме тех случаев, когда они конкретно связаны с написанием программ. В книжке предлагаются практические подходы к программи­рованию Windows-приложений, что позволит уменьшить время разработки и отладки программ и упростить эти процедуры.

1-ая глава не совершенно выдержана в этом духе Профессор А.А. Емельянов, так как, до того как приступить к написанию программки для Windows, Вам нужно хотя бы в общих чертах осознать, как работает эта система, какие идеи в ней реализованы и как она управляет Вашим компом. Принципиально также верно представлять, чем Windows отличается от предыдущих ей операционных систем и что Профессор А.А. Емельянов в их общего. Таким макаром, реальная глава представляет собой общий обзор Windows.

Если Вы до сего времени не писали программки для Windows, большая часть материала, представленного в этой книжке, будет вам новейшей. Пусть Вас это не смущает. Если трудиться довольно методично, то, дочитав до конца эту книжку Профессор А.А. Емельянов, Вы станете полностью квалифицированным Windows-программистом. Очередное замечание: современная Windows XP – это очень большая и непростая система. Она не может быть вполне описана в одной книжке. Потому, как уже говорилось, тут описаны только те элементы программирования, которые в большинстве случаев применяются при написании программ для Windows, или которые являются существенными Профессор А.А. Емельянов инновациями. Прочитав эту книжку до конца, Вы будете иметь достаточные познания и способности программирования в среде Windows и можете без усилий освоить любые другие части этой системы.

Происхождение Windows. Начнем рассмотрение с того, как Windows стала Windows и како­вы ее связи с миром разработки игр. Все началось с Профессор А.А. Емельянов Windows 1.0. Это была 1-ая попытка Microsoft сделать коммерче­скую оконную операционную систему, и вся она оказалась одной большой ошибкой. Windows 1.0 базировалась на операционной системе MS DOS (и это очень большая ошибка), не была многозадачной, работала очень медлительно и смотрелась очень плохо. (Пожалуй, основной предпосылкой ее неус­пеха был конкретно нехороший Профессор А.А. Емельянов внешний облик.) Но если гласить серьезно, то основная неувязка заключалась в том, что Windows требовалось более массивное аппаратное обеспечение, графические и звуковые способности, чем те, которые могли дать машины с процессо­ром 80286 (либо, еще ужаснее, 8086).

Все же Microsoft двигалась вперед, и скоро свет увидела последующая версия – Windows 2.0. В качестве примера Профессор А.А. Емельянов приведем случай, произошедший в компании вSoftware Publishing Corporation (США), когда эта компания получила бе­та-версию Windows 2.0. Зал для совещаний был забит сотрудниками; находился даже президент компании (с постоянным коктейлем в руке). Была запущена демоверсия Windows 2.0 и загружены несколько приложений, и все казалось полностью работоспособным. Но к тому времени уже Профессор А.А. Емельянов увидел свет IBM Presentation Manager (PM), который не только лишь го­раздо лучше смотрелся, да и работал под OS/2, которая была настоящей операционной системой, значительно превосходящей во всем Windows 2.0 (бывшей менее чем надстройкой над MS DOS). Так что на собрании был вынесен последующий вердикт: «Неплохо, но для разработки не Профессор А.А. Емельянов годится. Остаемся с DOS, и где мой коктейль?»

Windows 3.x. В 1990 году наконец появилась Windows 3.0, которая смотрелась полностью благопристойно. Естественно, она очень напоминала Mac OS компании Ap­ple, но кого это тревожило? (В конце концов, на­стоящие программеры вытерпеть не могут Мас.) В конце концов разработчики программного Профессор А.А. Емельянов обес­печения могли создавать симпатичные приложения для PC и начать перенос программ для MS DOS в Windows. Это была поворотная точка, когда PC начал побеждать Мас на рынке бизнес-приложений, а потом и на рынке настольных издательских систем (при том, что Ap­ple выпускала новые версии аппаратного обеспечения каждые 5 минут).

Невзирая на Профессор А.А. Емельянов благопристойную работу Windows 3.0, в ней осталось много заморочек, ошибок и иных проблем. Возникновение Windows 3.0 оказалось принципным скачком в разви­тии технологии, так что определенные проблемы были не такими уж внезапными. Для исправления этих заморочек Microsoft выпустила Windows 3.1. Отдел маркетинга Microsoft желал дать ей имя Windows 4.0, но позже было решено Профессор А.А. Емельянов сделать ее Windows 3.1, так как в систему было внесено не так много новшеств, чтоб изменять старший номер версии.

Одним из новшеств Windows 3.1 стала поддержка видео и звука, другим (в версии 3.11 – Windows for Workgroups) – поддержка работы в сети. Основная же неувязка Win­dows 3.1 оставалась в том, что Профессор А.А. Емельянов это было, на самом деле, приложение MS DOS.

Windows 95. В 1995 году Microsoft смогла сделать реальную 32-битовую, многозадачную, много­поточную операционную систему (невзирая на то, что в ней оставался большой кусочек 16-битового кода от Windows 3.1). После выпуска Windows 95 многие приложения, сделанные ранее для операционной системы Unix, были перепрограммированы для нее. Возникновение Windows 95 измени Профессор А.А. Емельянов­ло отношение к этому классу операционных систем. Выход в свет Windows 95 изменил компьютерный бизнес. В 1996 году Microsoftвыпустила набор Game SDK, который, на самом деле, можно считать первой версией DirectX. Эта разработка работала исключительно в Windows 95, но была очень мед­ленной, чтоб состязаться с такими играми для DOS, как Профессор А.А. Емельянов DOOM либо Duke Nukem.

Windows 98. В средине 1998 года была выпущена новенькая версия операционной системы – Windows 98. Это быстрее эволюционный, чем революционный шаг в развитии технологий, но от этого он не становится наименее принципиальным. Windows 98 – это на сто процентов 32-битовая операционная система с поддержкой всего, что только можно для Профессор А.А. Емельянов себя вообразить, открытая для различных расширений. Она обладает интегрированной поддержкой сетей и Internet, мультимедиа, ЗD-графики, DirectX.

Windows 98 значительно надежнее в работе по сопоставлению с Windows 95. Естественно, и Windows 98 может взбрыкнуть, но с ней это случается еще пореже, чем с Windows 95. Не считая того, Plug and Play в Windows 98 работает по Профессор А.А. Емельянов сути и работает хорошо.

Windows ME. В конце 1999 – начале 2000 года увидела свет версия Windows ME (Millennium). Она, на самом деле, представляет собой Windows 98 с увеличенной степенью интегрированности поддержки сети и мультимедиа. Ее возникновение – это в основном коммерческий ход, чем настоящая техно необходимость. Windows ME более капризна, в ней Профессор А.А. Емельянов плохо ра­ботает ряд приложений, ее «не любит» некое аппаратное обеспечение, так что эта операционная система отлично работает, обычно, лишь на очень новых машинах, в то время как у Windows 98 обычно не появляется заморочек при работе на компьютерах, вы­пущенных еще в 1995 году. Но на новых машинах WindowsME – довольно надеж Профессор А.А. Емельянов­ная операционная система.

Windows XP. Эта операционная система сходу приглянулась своим внешним обликом, можно ска­зать – собственной эргономичностью. Она смотрится как Windows 98 либо ME, в то же время владея надежностью Windows 2000 либо NT. Это был очередной шаг в области операционных систем для средних юзеров. Но наряду со всеми красотами имеется и другая Профессор А.А. Емельянов сторона.

Microsoft годами предупреждала производителей аппаратного и про­граммного обеспечения о том, что не нужно «химичить» и использовать в собственном коде не совершенно корректные методы работы с аппаратным обеспечением. В итоге в поистине 32-битовой Win32-совместимой операционной системе просто не запускается ряд при­ложений, нарушающих правила Microsoft. В конечном Профессор А.А. Емельянов счете, это даже хорошо, потому что производители будут обязаны откорректировать собственный код (который и был одной из обстоятельств непостоянности работы Windows 95/98).

Ну а пока, чтоб не утратить клиентов из-за таковой несовместимости, ХР имеет два варианта помощи юзерам в данной ситуации. Во-1-х, операционная система повсевременно Профессор А.А. Емельянов обновляется средством Microsoft Update и юзер немедля получа­ет исправленное программное обеспечение. Во-2-х, для работы с проблемным про­граммным обеспечением в ХР имеется возможность включения так именуемого режима сопоставимости (с несопоставимым программным обеспечением; на самом деле, его работа сво­дится к тому, чтоб вернуть все ошибки, – тогда и программки Профессор А.А. Емельянов заработают).

Windows NT/2000. Сейчас мы можем побеседовать и о Windows NT. Во время написания этой книжки текущей была версия 4.0 release 5, которая была переименована в Windows 2000 и, на самом деле, представляет собой NT 5.0. Как уже говорилось, полосы 9Х и NT сходятся в одной точке – Windows ХР, пред­назначенной для широкого круга Профессор А.А. Емельянов юзеров. Windows 2000 просто значительно строже Windows ХР, так что многие производители игр предпочитают разрабатывать их под Windows 2000, а потом выпускать для Windows 9X/ME/XP. Windows 2000 обладает полной под­держкой Plug and Play вместе с Win32/DirectX, так что приложения, написанные для Windows 9X с DirectX, будут нормально работать Профессор А.А. Емельянов в Windows 2000.

Итак, какой из всего произнесенного следует вывод? Если вы пишете приложение Win32 с внедрением DirectX (либо без него), то такое приложение будет корректно работать в Windows 95, 98, ME, ХР и 2000. Как следует, все изложенное в этой книжке применимо для целого ряда операционных систем семейства Windows.


profil-podgotovki-teplogazosnabzhenie-i-ventilyaciya6.html
profil-profilnij-komponent.html
profil-psihologo-pedagogicheskoe-obrazovanie.html