СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Презентация на тему "Идеология программирования под Windows"

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Презентация на тему "Идеология программирования под Windows"»

Идеология программирования под Windows  Выполнила: Юрьева Мишель Группа: МДИ-117

Идеология программирования под Windows

Выполнила: Юрьева Мишель

Группа: МДИ-117

План 1. Введение в программирование под Windows 2. Основные общие свойства Windows-платформ 3. Приложения, потоки и окна 4. Классы окон 5. Типы сообщений 6. Вызов функций Windows  7. Оконная функция – функция обратного вызова 8. Синхронные и асинхронные сообщения  9. Разделение аппаратных ресурсов

План

1. Введение в программирование под Windows

2. Основные общие свойства Windows-платформ

3. Приложения, потоки и окна

4. Классы окон

5. Типы сообщений

6. Вызов функций Windows

7. Оконная функция – функция обратного вызова

8. Синхронные и асинхронные сообщения

9. Разделение аппаратных ресурсов

1. Введение в программирование под Windows  Под термином WINDOWS-программирование можно подразумевать все, что угодно, но в большинстве своем это означает

1. Введение в программирование под Windows

Под термином WINDOWS-программирование можно подразумевать все, что угодно, но в большинстве своем это означает "событийное" программирование. Именно эта концепция используется в Windows. Она кардинально отличается от того, как писались программы для DOS. Если в DOS программа представлялась единым целым и опрашивала в цикле клавиатуру, мышь, порты и пр. и в зависимости от того, нажата ли клавиша, передвинулась мышь, выполняла определенные действия. В Windows этот процесс опроса берет на себя сама система и если произошло какое-то действие (событие), то сообщает (посылает вашей программе сообщение) об этом.

1. Введение в программирование под Windows  Наиболее важным моментом при программировании для Windows является интерфейс прикладного программирования (Application Programming Interface,   API)  -  это набор самых различных функций, с помощью которых приложение может взаимодействовать с Windows.   Win32 API реализован на следующих платформах:    Win32s (интерфейс Win32s # свободно распространяемое подмножество API Win32, работающее под ОС Windows 3.x на процессорах 80386 и старше);  Windows 95/98/NT/2000/XP/2003;  Windows CE.

1. Введение в программирование под Windows

Наиболее важным моментом при программировании для Windows является интерфейс прикладного программирования (Application Programming Interface,   API)  -  это набор самых различных функций, с помощью которых приложение может взаимодействовать с Windows.

Win32 API реализован на следующих платформах:

 

Win32s (интерфейс Win32s # свободно распространяемое подмножество API Win32, работающее под ОС Windows 3.x на процессорах 80386 и старше);

Windows 95/98/NT/2000/XP/2003;

Windows CE.

2. Основные общие свойства Windows-платформ  Систему Windows часто называют операционной системой передачи сообщений. В основе системы лежит механизм, транслирующий практически каждое событие (нажатие клавиши, перемещение мыши, истечение времени таймера) в сообщение.  Типичное приложение построено на основе цикла сообщений ,  который принимает эти сообщения и отправляет их к соответствующим функциям – обработчикам сообщений. Хотя сообщения передаются приложениям, они адресованы не им, а другим основополагающим компонентам операционной системы– окнам.

2. Основные общие свойства Windows-платформ

Систему Windows часто называют операционной системой передачи сообщений. В основе системы лежит механизм, транслирующий практически каждое событие (нажатие клавиши, перемещение мыши, истечение времени таймера) в сообщение.

Типичное приложение построено на основе цикла сообщений ,  который принимает эти сообщения и отправляет их к соответствующим функциям – обработчикам сообщений. Хотя сообщения передаются приложениям, они адресованы не им, а другим основополагающим компонентам операционной системы– окнам.

2. Основные общие свойства Windows-платформ  С точки зрения  пользователя , окно – это прямоугольная область экрана, которую занимает каждая программа Windows. Хотя одна программа может создать несколько окон, всегда имеется одно окно верхнего уровня, которое называется “главным окном” приложения.  С точки зрения  программиста , окно – это самостоятельно существующий объект, параметры которого описаны в специальных структурах данных, а поведение функцией окна.  Окно  – это гораздо больше, чем просто прямоугольная область на экране компьютера; оно представляет некую абстрактную сущность, через которую взаимодействуют пользователь и компьютер.

2. Основные общие свойства Windows-платформ

С точки зрения  пользователя , окно – это прямоугольная область экрана, которую занимает каждая программа Windows. Хотя одна программа может создать несколько окон, всегда имеется одно окно верхнего уровня, которое называется “главным окном” приложения.

С точки зрения  программиста , окно – это самостоятельно существующий объект, параметры которого описаны в специальных структурах данных, а поведение функцией окна.

Окно  – это гораздо больше, чем просто прямоугольная область на экране компьютера; оно представляет некую абстрактную сущность, через которую взаимодействуют пользователь и компьютер.

3. Приложения, потоки и окна  В многозадачных (но не многопоточных) операционных системах наименьшей единицей выполнения является задача или процесс. Механизм распределения задач в этих операционных системах переключается между этими задачами; многозадачность выполняется между двумя или более процессами.  В противоположность этому в многопоточной системе наименьшей единицей выполнения является поток, не процесс. Задача или процесс могут состоять из одного или более потоков (обычно один определяется как главный поток). Организация нового потока требует меньше системных ресурсов, потоки одного процесса имеют доступ к одному адресному пространству; переключение между потоками одного и того же процесса требует незначительных расходов ресурсов системы.

3. Приложения, потоки и окна

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

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

3. Приложения, потоки и окна  В типичном Win32-приложении окно всегда принадлежит какому-то потоку; поток может владеть одним или несколькими окнами или вообще ни одним.  Поток, выполняющий какие-либо операции, не имеющий ни окон, ни очереди сообщений, ни цикла сообщений, называется обычно  рабочим потоком ,  в противоположность более совершенному, обрабатывающему очередь сообщений  потоку пользовательского интерфейса . Окна Окна, подчиненные родительским окнам Окна верхнего уровня

3. Приложения, потоки и окна

В типичном Win32-приложении окно всегда принадлежит какому-то потоку; поток может владеть одним или несколькими окнами или вообще ни одним.

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

Окна

Окна, подчиненные родительским окнам

Окна верхнего уровня

4. Классы окон  Основное поведение окна определяется классом окон. Класс окна несет информацию о:  начальном внешнем виде окна; пиктограмме по умолчанию; курсоре и ресурсе меню, связанном с окном; об адресе функции, называемой оконной процедурой.

4. Классы окон

Основное поведение окна определяется классом окон. Класс окна несет информацию о:

  • начальном внешнем виде окна;
  • пиктограмме по умолчанию;
  • курсоре и ресурсе меню, связанном с окном;
  • об адресе функции, называемой оконной процедурой.
4. Классы окон  В Windows предусмотрен механизм наследования. Он реализуется с использованием так называемых классов   окна .  Перед созданием окна, необходима регистрация класса окна .  Для каждого класса окна определяется функция окна. При создании окна необходимо указать, к какому классу окна оно будет принадлежать и, соответственно, какую функцию окна будет использовать для обработки сообщений. Приложения могут создавать собственные оконные классы окна и свои функции окна (и следовательно свои методы), или использовать стандартные, определенные в Windows классы окна.

4. Классы окон

В Windows предусмотрен механизм наследования. Он реализуется с использованием так называемых классов   окна .  Перед созданием окна, необходима регистрация класса окна .

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

5. Типы сообщений  Приходящее приложению Windows - сообщение состоит из нескольких частей, для его представления используется структура MSG. Приведем описание   структуры, применяющейся для представления сообщения, т.е. описывающей тип сообщения: typedef struct tagMSG { HWND   hwnd;       // окно, которому посылается это сообщение UINT      message;           // значение самого сообщение WPARAM      wParam; // для передачи дополнительной информации LPARAM        lParam;   // для передачи дополнительной информации DWORD          time;        // время, когда произошло событие POINT    pt;                     // точка, где произошло события (для мыши) } MSG;

5. Типы сообщений

Приходящее приложению Windows - сообщение состоит из нескольких частей, для его представления используется структура MSG. Приведем описание   структуры, применяющейся для представления сообщения, т.е. описывающей тип сообщения:

typedef struct tagMSG

{ HWND   hwnd;       // окно, которому посылается это сообщение

UINT      message;           // значение самого сообщение

WPARAM      wParam; // для передачи дополнительной информации

LPARAM        lParam;   // для передачи дополнительной информации

DWORD          time;        // время, когда произошло событие

POINT    pt;                     // точка, где произошло события (для мыши)

} MSG;

5. Типы сообщений  Сообщения можно разделить на несколько групп в зависимости от их функций. Самой насыщенной группой сообщений является группа сообщений управления окнами. Символьные идентификаторы для этих сообщений начинаются с  WM .  Эта группа настолько велика, что ее уместно еще раз разбить на категории. Эти категории включают:  сообщения DDE (dynamic data exchange);  сообщения буфера обмена (clipboard);  сообщения мыши;  сообщения клавиатуры;  сообщения неклиентской (non-client) области окна;  сообщения MDI (multiple-document interface) и др. с

5. Типы сообщений

Сообщения можно разделить на несколько групп в зависимости от их функций. Самой насыщенной группой сообщений является группа сообщений управления окнами. Символьные идентификаторы для этих сообщений начинаются с  WM Эта группа настолько велика, что ее уместно еще раз разбить на категории. Эти категории включают:

сообщения DDE (dynamic data exchange);

сообщения буфера обмена (clipboard);

сообщения мыши;

сообщения клавиатуры;

сообщения неклиентской (non-client) области окна;

сообщения MDI (multiple-document interface) и др.

с

5. Типы сообщений  Приложения также могут определять собственные сообщения.  Первый способ  пригоден только для случая, если сообщение пересылается между окнами (частями) одного и того же приложения .  Для этого необходимо определить символическое имя нового сообщения при помощи директивы #define, например:  Вторым способом определения собственного сообщения является использование функции RegisterWindowMessage ,  которая возвращает уникальный идентификатор для сообщения .  Использование собственных типов сообщений, полученных таким способом, позволяет частям приложения связываться между собой; разные приложения также могут обмениваться информацией таким способом. Однако для взаимодействия приложений доступны более мощные механизмы, например, отображаемые в память файлы. #define   СимволическоеИмяОдногоСообщения           (WM_USER+1) #define    СимволическоеИмяДругогоСообщения          (WM_USER+2)

5. Типы сообщений

Приложения также могут определять собственные сообщения.

Первый способ пригоден только для случая, если сообщение пересылается между окнами (частями) одного и того же приложения .  Для этого необходимо определить символическое имя нового сообщения при помощи директивы #define, например:

Вторым способом определения собственного сообщения является использование функции RegisterWindowMessage ,  которая возвращает уникальный идентификатор для сообщения Использование собственных типов сообщений, полученных таким способом, позволяет частям приложения связываться между собой; разные приложения также могут обмениваться информацией таким способом. Однако для взаимодействия приложений доступны более мощные механизмы, например, отображаемые в память файлы.

#define   СимволическоеИмяОдногоСообщения           (WM_USER+1)

#define    СимволическоеИмяДругогоСообщения          (WM_USER+2)

6. Вызов функций Windows с  Функции GDI используются для выполнения основных независимых от устройства графических операций над контекстом устройства.  Контекст устройства  – это интерфейс для определенного графического устройства. Его можно использовать для получения информации об устройстве и выполнения графического вывода на это устройство. Информация, которая может быть получена через контекст устройства, содержит его подробное описание. Технология устройства (векторная или растровая), его тип, имя, разрешающая способность, цветовые возможности, возможности шрифтов – все это можно получить, вызвав контекст соответствующего устройства.

6. Вызов функций Windows

с

Функции GDI используются для выполнения основных независимых от устройства графических операций над контекстом устройства.  Контекст устройства  – это интерфейс для определенного графического устройства. Его можно использовать для получения информации об устройстве и выполнения графического вывода на это устройство. Информация, которая может быть получена через контекст устройства, содержит его подробное описание. Технология устройства (векторная или растровая), его тип, имя, разрешающая способность, цветовые возможности, возможности шрифтов – все это можно получить, вызвав контекст соответствующего устройства.

6. Вызов функций Windows  Службы пользователя . Модуль User (модуль пользователя) поддерживает системные вызовы для работы с элементами пользовательского интерфейса. Они включают в себя функции обработки окон, диалоговых панелей, меню, текстовых и графических курсоров, элементов управления, буфера обмена и многих других понятий. Именно благодаря функциям модуля User становятся доступными высокоуровневые компоненты пользовательского интерфейса.  Службы ядра системы. Службы ядра обычно относятся к категории управления файлами, памятью, процессами, потоками и ресурсами. Это не полный список, но все же эти категории описывают самые часто используемые функции модуля Kernel.

6. Вызов функций Windows

Службы пользователя . Модуль User (модуль пользователя) поддерживает системные вызовы для работы с элементами пользовательского интерфейса. Они включают в себя функции обработки окон, диалоговых панелей, меню, текстовых и графических курсоров, элементов управления, буфера обмена и многих других понятий. Именно благодаря функциям модуля User становятся доступными высокоуровневые компоненты пользовательского интерфейса.

Службы ядра системы. Службы ядра обычно относятся к категории управления файлами, памятью, процессами, потоками и ресурсами. Это не полный список, но все же эти категории описывают самые часто используемые функции модуля Kernel.

6. Вызов функций Windows  Другие API. Windows – это намного больше, чем возможности, реализованные в рассматриваемых выше трех основных модулях.   Существует множество модулей, других API, каждый реализующий свое определенное множество функциональных возможностей. Рассмотрим кратко некоторые из наиболее широко используемых API.  Функции общих элементов управления   используются для работы с новыми элементами управления (расширяющими множество стандартных элементов управления).  Общие диалоговые окна   содержат поддерживаемые системой диалоговые окна для открытия файла, выбора цвета из цветовой палитры, выбора шрифта из множества инсталлированных в системе, определения операции поиска или поиска с заменой. Эти диалоговые окна можно использовать по умолчанию или их функции можно изменять через новые шаблоны диалоговых окон и оконных процедур.

6. Вызов функций Windows

Другие API. Windows – это намного больше, чем возможности, реализованные в рассматриваемых выше трех основных модулях.   Существует множество модулей, других API, каждый реализующий свое определенное множество функциональных возможностей. Рассмотрим кратко некоторые из наиболее широко используемых API.

Функции общих элементов управления   используются для работы с новыми элементами управления (расширяющими множество стандартных элементов управления).

Общие диалоговые окна   содержат поддерживаемые системой диалоговые окна для открытия файла, выбора цвета из цветовой палитры, выбора шрифта из множества инсталлированных в системе, определения операции поиска или поиска с заменой. Эти диалоговые окна можно использовать по умолчанию или их функции можно изменять через новые шаблоны диалоговых окон и оконных процедур.

7. Оконная функция – функция обратного вызова  Оконная процедура связана с классом окна, который программа регистрирует с помощью вызова функции  RegisterClass . Окно, создаваемое на основе этого класса, использует оконную процедуру для обработки всех сообщений окна .  Windows посылает сообщения окну, вызывая оконную процедуру.  Рассмотрим примеры, когда Windows вызывает оконную процедуру:  первый раз при создании окна;  при последующем удалении окна;  при изменении размеров окна, при его перемещении, при его свертывании;  при выборе пункта меню;  при манипуляции с полосами прокрутки или с мышью;  чтобы сообщить ей о необходимости перерисовать рабочую область.

7. Оконная функция – функция обратного вызова

Оконная процедура связана с классом окна, который программа регистрирует с помощью вызова функции  RegisterClass . Окно, создаваемое на основе этого класса, использует оконную процедуру для обработки всех сообщений окна Windows посылает сообщения окну, вызывая оконную процедуру.

Рассмотрим примеры, когда Windows вызывает оконную процедуру:

первый раз при создании окна;

при последующем удалении окна;

при изменении размеров окна, при его перемещении, при его свертывании;

при выборе пункта меню;

при манипуляции с полосами прокрутки или с мышью;

чтобы сообщить ей о необходимости перерисовать рабочую область.

8. Синхронные и асинхронные сообщения  Одни и те же сообщения могут быть и  синхронные  (queued), и  асинхронные  (nonqueued).    Синхронными сообщениями  называются сообщения, которые Windows помещает в очередь сообщений программы, и которые извлекаются и диспетчеризируются в цикле обработки сообщений .  Асинхронные сообщения  передаются непосредственно окну, когда Windows вызывает оконную процедуру .

8. Синхронные и асинхронные сообщения

Одни и те же сообщения могут быть и  синхронные  (queued), и  асинхронные  (nonqueued). 

  Синхронными сообщениями  называются сообщения, которые Windows помещает в очередь сообщений программы, и которые извлекаются и диспетчеризируются в цикле обработки сообщений . 

Асинхронные сообщения  передаются непосредственно окну, когда Windows вызывает оконную процедуру .

9. Разделение аппаратных ресурсов  Одним из наиболее существенных свойств Windows является то, что под его управлением можно одновременно запускать на выполнение несколько программ. Различные приложения делят между собой эти ограниченные ресурсы, распределение которых осуществляет операционная оболочка Windows.  Программируя для Windows, нельзя забывать о том, что все аппаратные ресурсы являются разделяемыми, и для их правильного использования следует придерживаться определенных правил.  Так, если программа для MS-DOS имеет доступ ко всей свободной оперативной памяти и может обращаться к этой памяти так, как захочется программисту, то в Windows, где одновременно может выполняться несколько программ, память является разделяемым ресурсом.

9. Разделение аппаратных ресурсов

Одним из наиболее существенных свойств Windows является то, что под его управлением можно одновременно запускать на выполнение несколько программ. Различные приложения делят между собой эти ограниченные ресурсы, распределение которых осуществляет операционная оболочка Windows.

Программируя для Windows, нельзя забывать о том, что все аппаратные ресурсы являются разделяемыми, и для их правильного использования следует придерживаться определенных правил.

Так, если программа для MS-DOS имеет доступ ко всей свободной оперативной памяти и может обращаться к этой памяти так, как захочется программисту, то в Windows, где одновременно может выполняться несколько программ, память является разделяемым ресурсом.