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

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

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 оперирует с двумя категориями...


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

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

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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

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