История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Дисциплины:
|
из
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‰)...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!