Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Базовая концепция графического интерфейса в Win32API. Окна, оконные классы, события и сообщения. Обработка сообщений. Основные типы данных в Win32API.
Win32API — совокупность библиотек, которые связывают Windows и прикладные программы.
#include < windows.h>
• Управление процессами и потоками • Работа с файловой системой • Средства программирования работы по сети • Взаимодействие программ, в т.ч. по сети • Средства графического интерфейса Windows
В WinAPI есть абстракции оконных и вспомогательных объектов. Окна: независимые элементы управления.
Доступ ко всем объектам осуществляется при помощи дескрипторов объектов.
Вспомогательные объекты: курсоры, кисти, перья, значки.
Окна могут принимать и реагировать на сообщения, которые генерируются программно или возникают при различных событиях.
Событие — действие пользователя или системы.
ОС выстраивает очередь сообщений для каждого окна стандартного класса. Пользовательским классам требуется прописывать циклы обработки. Это делается функцией оконной процедуры. Один из параметров функции — дескриптор окна, который определяет, для какого окна будут обрабатываться сообщения.
Типы данных: тип соотв. c++ BOOL bool BYTE unsigned char WORD unsigned short DWORD unsigned int UINT unsigned int INT int LONG long LPSTR char* LPCSTR char* (const) NULL пустой указатель
Дескрипторы:
тип описание HANDLE указатель на любой объект HWND дескриптор окна HMENU дескриптор меню HINSTANCE дескриптор приложения HBITMAP изображение (растровое) HBRUSH дескриптор кисти HPEN дескриптор пера HDC дескриптор контекста устройства HFONT дескриптор шрифта HICON дескриптор значка HCURSOR дескриптор курсора
Структура оконного класса в Win32API. Регистрация оконного класса. Стандартные классы органов управления в Win32API.
Структура оконного класса: WNDCLASS/WNDCLASSEX UINT style; //флаги стиля по умолч. WNDPROC lpfnWndProc; //указ. на окон. процедуру int cbWndExtra, cbClsExtra; //кол-во данных окна и класса HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hBackground; LPCSTR lpszMenuName;
Регистрация оконного класса: RegisterClass(WNDCLASS*lpWndClass); RegisterClassEx(WNDCLASSEX*lpWndClass);
Стандартные элементы управления: • Button • Edit • ListBox • ComboBox • Static • RichEdit
Функции создания окна в Win32API. Структура сообщения в Win32API. Цикл сообщений. Функции, используемые в цикле сообщений. Стандартный прототип функции обработки сообщений в Win32API.
Для создания окна вызывают функцию CreateWindow. Она создает перекрывающееся, временное или дочернее окно и устанавливает начальное значение некоторых его параметров. Эта функция объявляется следующим образом: HWND CreateWindow( LPCTSTR lpClassName, Указатель на имя класса LPCTSTR lpWindowName, Указатель на имя окна DWORD dwStyle, Стиль окна int x, Координата левого края окна int y, Координата верхнего края окна int nWidth, Ширина окна int nHidht, Высота окна HWND hWndParent, Дескриптор родительского окна HMENU hMenu, Дескриптор меню или идентификатор дочернего окна HANDLE hInstance, Дескриптор приложения LPVOID lParam Указатель на данные окна );
Перед созданием окна функция CreateWindow посылает код сообщения WM_CREATE функции создаваемого окна. Она затем обрабатывает возвращаемое функцией окна значение и создает окно, если это значение равно 0, или не создает окна, если значение ровно -1. Соответственно функция CreateWindow возвращает дескриптор созданного окна или NULL.
Структура сообщения: MSG: HWND hWnd UINT message WPARAM wParam LPARAM lParam DWORD time POINT pt
Цикл сообщений: MSG msg;
Прототип функции обработки сообщений: LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
|