Студопедия — WinProc PROC,
Студопедия Главная Случайная страница Обратная связь

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

WinProc PROC,






hWnd: DWORD,; Дескриптор окна

localMsg: DWORD,; Идентификатор сообщения

wParam: DWORD,; Параметр 1 (зависит от сообщения)

lParam: DWORD; Параметр 2 (зависит от сообщения)

Обратите внимание, что значение третьего и четвертого параметров процедуры зависит от типа поступившего сообщения. Например, при обработке щелчка кнопкой мыши, параметр lParam указывает координаты X и Y точки на экране, в которой находится указатель в момент щелчка.

В примере программы, приведенном ниже, процедура WinProc будет обрабатывать всего три сообщения:

• WMLBUTTONDOWN — генерируется в ответ на щелчок левой кнопкой мыши;

• WM_CREATE — уведомляет программу о создании основного окна;

• WM_CLOSE — информирует программу о том, что ее основное окно закрывается.

Например, ниже приведен фрагмент кода процедуры WinProc, в котором обрабатывается сообщение WM_LBUTTONDOWN. При этом вызывается функция MessageBox, отображающая на экране окно сообщения, информирующее пользователя о произошедшем событии (рис.):

.IF eax == WM_LBUTTONDOWN

INVOKE MessageBox, hWnd, ADDR PopupText,

ADDR PopupTitle, MB_OK

Jmp WinProcExit

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

Процедура ErrorHandler

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

Если эта функция вернет нулевое значение, вызывается процедура ErrorHandler, в которой отображается сообщение об ошибке, а затем работа программы завершается:

INVOKE RegisterClass, ADDR MainWin

.IF eax == 0

Call ErrorHandler

Jmp Exit_Program

ENDIF

В процедуре ErrorHandler выполняются несколько важных действий, перечисленных ниже:

• вызывается функция GetLastError, с помощью которой определяется системный код ошибки;

• вызывается функция FormatMeesage, которая возвращает адрес строки, содержащей сообщение об ошибке, сформированное операционной системой;

• вызывается функция MessageBox, с помощью которой полученная от функции FormatMeesage текстовая строка выводится на экран в окне сообщений;

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







Дата добавления: 2014-11-10; просмотров: 596. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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

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

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

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

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия