Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
GUI – Graphical User Interface – графический интерфейс пользователя
Сообщение представляется следующей структурой:
typedef struct {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG
hwnd – дескриптор окна, куда адресовано сообщение.
message – код сообщения. Приложение может использовать только младшее слово. Старшее слово зарезервировано системой.
wParam – дополнительная информация; зависит от типа сообщения.
lParam – дополнительная информация; зависит от типа сообщения.
time – время, когда сообщение было послано.
pt – координаты указателя мыши в момент, когда сообщение было послано. Младшее слово – Х, старшее – Y.
Процесс обработки сообщений в Windows:

Структура GUI -приложения. Регистрация класса окон.
Так как в GUI-приложении должно быть минимум одно окно, в структуре приложения можно выделить следующие блоки:
1) регистрация класса окон
2) создание главного окна
3) процедура главного окна
4) цикл обработки сообщений
Регистрация класса окон
Прежде чем создавать окно, должен быть зарегистрирован класс окон. Окно затем создается как экземпляр данного класса.
Для регистрации используется API-функция RegisterClass, с одним параметром – адресом структуры, имеющей тип WNDCLASS:
ATOM RegisterClass(
CONST WNDCLASS * lpWndClass
);
typedef struct _WNDCLASS {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;
Style – стиль окна:перерисовывать окно при перемещении,деактивировать кнопку «Закрыть»,эффекты Windows XP и др.
lpfnWndProc – адрес процедуры обработки сообщений окна. Для всех окон данного класса объявляется одна процедура окна.Каждое окно при создании имеет собственный дескриптор. Часто для каждого окна создают свой класс.
cbClsExtra – количество дополнительных байт для класса. Должен быть равен нулю.
cbWndExtra – количество дополнительных байт для окна. Должен быть равен нулю.
hInstance – дескриптор приложения, которое содержит процедуру для данного класса.
hIcon – дескриптор пиктограммы окна. Если ноль, то по умолчанию.
hCursor – дескриптор курсора мыши. Если ноль, то по умолчанию.
hbrBackground – цвет окна.
lpszMenuName – имя ресурса, содержащего меню.
lpszClassName – адрес строки, содержащей имя класса.
GUI -приложения: создание главного окна, процедура окна.
Для создания окна используется функция CreateWindow:
HWND CreateWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,(=0)
LPVOID lpParam
);
lpClassName – адрес строки, содержащей имя класса, который ранее был успешно зарегистрирован с помощью функции RegisterClass.
lpWindowName – адрес строки, где содержится имя создаваемого окна (отображается в заголовке).
dwStyle – стиль окна:
· WS_MAXIMIZE – развернутое окно
· WS_MINIMIZE – свернутое окно
· WS_CAPTION – есть заголовок
· WS_DISABLED – недоступное окно
· WS_SIZEBOX – окно с изменяемыми размерами
· WS_VISIBLE – видимое окно
x, y – координаты левого верхнего угла.
nWidth, nHeight – ширина и высота окна.
hWndParent – дескриптор родительского окна. Для главного окна = 0.
hMenu – дескриптор меню. Обычно равен нулю.
hInstance – дескриптор модуля, который ассоциирован с этим окном. В Windows NT/2000/XP игнорируется.
lpParam – адрес переменной, которая будет передана в окно.
Каждое окно имеет процедуру окна (window procedure) – функцию, которая обрабатывает все сообщения, передаваемые всем окнам данного класса. Процедура окна начинает работать сразу после создания окна.
Процедура окна должна иметь 4 параметра:
LRESULT CALLBACK WindowProc( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
Hwnd – дескриптор окна (процедура одна на целый класс окон).
uMsg – число – идентификатор сообщения.
wParam, lParam – дополнительные параметры.
Если процедура окна не обрабатывает какие-то сообщения, их должна обрабатывать системная процедура DefWindowProc с теми же параметрами. Процедура окна возвращает ноль, если сообщение обработано и значение, возвращаемое DefWindowProc, в противном случае.
|
|
|
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!