Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2023-01-01 | 34 |
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‰)...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!