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

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

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; просмотров: 628. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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

ОПРЕДЕЛЕНИЕ ЦЕНТРА ТЯЖЕСТИ ПЛОСКОЙ ФИГУРЫ Сила, с которой тело притягивается к Земле, называется силой тяжести...

СПИД: морально-этические проблемы Среди тысяч заболеваний совершенно особое, даже исключительное, место занимает ВИЧ-инфекция...

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

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

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