Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Оконная процедура

Читайте также:
  1. Внешнее управление как процедура, применяемая в деле о банкротстве.
  2. Вопрос 16. Референдум в зарубежных странах, его виды, процедура и правовые последствия.
  3. Вопрос 33. Процедура регистрации кредитных организаций и выдачи лицензий. Внесение изменений и дополнений в учредительные документы и их регистрация.
  4. Вопрос № 13. Метод фокус групп: специфика, сфера применения, процедура проведения.
  5. Вопрос №46 Налог на прибыль: определение, значение для предприятия и процедура взимания. Порядок расчета налога на прибыль.
  6. Вспомогательный алгоритм (подпрограмма, процедура).
  7. Делопроизводство в таможенных органах (порядок ведения делопроизводства по административным процедурам).
  8. дістемелік-процедуралық бөлім.
  9. Задачи, методы и процедура исследования
  10. Законодательная процедура в парламентах зарубежных стран.

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

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

Оконная процедура имеет следующую структуру:

LRESULT CALLBACK WndProc (HWND hwnd,//дескриптор

//окна

UINT iMsg, //идентификатор сообщения

WPARAM wParam, //параметр сообщения

LPARAM lParam) //параметр сообщения

{

//объявления переменных

switch(iMsg)

{

case WM_COMMAND:

… //обработка сообщения

break;

case WM_PAINT:

… //обработка сообщения

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

return DefWindowProc(hwnd,iMsg,wParam,lParam);

}

return 0;

}

Оконная процедура получает идентификатор сообщения и выполняет ветвь инструкции switch, соответствующую этому сообщению. Если в инструкции switch такая ветвь отсутствует, обработка сообщения выполняется по умолчанию функцией DefWindowProc(). Значения параметров wParam и lParam зависят от того, какое именно сообщение получено; при обработке одних сообщений эти параметры используются, при обработке других сообщений – нет. Обработка сообщения WM_DESTROY, возникающего при завершении работы программы, заключается в исполнении функции PostQuitMessage(), которая помещает в очередь сообщений приложения сообщение WM_QUIT, останавливающее цикл обработки сообщений приложения.

5)

 

 

6) После создания окна, создающая функция возвращает дескриптор окна (window handle), который уникально идентифицирует окно. Прикладная программа использует этот дескриптор в других функциях, чтобы направить их действия на это окно. Дескриптор окна имеет тип данных HWND; прикладная программа должна использовать этот тип при объявлении переменной, которая содержит в себе дескриптор окна.

Win32 API включает в себя несколько специальных констант, которые могут заменять дескриптор окна в некоторых функциях. Например, прикладная программа может использовать HWND_TOPMOST в функции SendMessageTimeout, HWND_BROADCAST в функции SendMessage, или HWND_DESKTOP в функции MapWindowPoints.

Хотя константа ПУСТО (NULL) - не дескриптор окна, Вы можете использовать её в некоторых функциях, чтобы определить, нет ли воздействия на какое-либо окно. Например, установив значение ПУСТО (NULL) в параметре hwndParent функции CreateWindowEx, создается окно, у которого нет какого либо родителя или владельца. Некоторые функции могут возвращать значение ПУСТО (NULL) вместо дескриптора, указывая, что данное действие не применяется ни к какому окну.

Прикладная программа может использовать функцию FindWindow, чтобы обнаружить, существует ли в системе окно с определенным именем класса или именем окна. Если такое окно существует, FindWindow возвращает дескриптор окна. Чтобы ограничивать поиск в дочерних окнах отдельной прикладной программы, используйте функцию FindWindowEx. Функция IsWindow определяет, правильно ли идентифицирует дескриптор окна существующее окно.

7) Функция ShowWindow устанавливает состояние показа определяемого окна.




Дата добавления: 2015-01-30; просмотров: 75 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав