Значения параметра lpszName




Макрос Форма иконки
  IDI_APPLICATION Стандартная иконка приложения
  IDI_ASTERISK Иконка "информация"
  IDI_EXCLAMATION Иконка "восклицательный знак"
  IDI_HAND Иконка "знак Стоп"
  IDI_QUESTION Иконка "вопросительный знак"

 

Для того чтобы определить курсор мыши, используется функция API LoadCursor(), имеющая следующий прототип:

 

HCURSOR LoadCursor(HINSTANCE hlnst, LPCSTR IpszName).


Эта функция возвращает дескриптор курсора. Параметр hInst задает дескриптор экземпляра приложения, содержащего курсор, a lpszName – имя необходимого ресурса. Для того чтобы использовать встроенный тип курсора Windows, следует задать NULL в первом параметре и макрос, определяющий курсор, – во втором. Некоторые наиболее употребляемые макросы для встроенных курсоров приведены ниже.

 

Таблица 2.2

Наиболее употребляемые макросы для встроенных курсоров

 

Макрос Форма курсора
  IDC_ARROW Стандартный курсор – стрелка
  IDC_CROSS Перекрестье
  IDC_IBEAM Вертикальная черта, используемая в редакторах
  IDC_WAIT "Песочные часы"

 

Цвет заполнения окна, создаваемого в нашей программе, определен как белый, а дескриптор кисти получается при вызове функции API GetStockObject(). Кисть – это ресурс, определяющий цвет и способ заполнения объектов на экране. Функция GetStockObject() используется для получения дескрипторов стандартных ресурсов, определенных в системе и представляющих собой кисти, перья (перо применяется для рисования линий так же, как кисть – для заполнения объектов) и шрифты. Вот прототип этой функции:

HGDIOBJ GetStockObject(int object).

Функция возвращает дескриптор объекта, задаваемого аргументом. (Тип HGDIOBJ является дескриптором GDI-объекта.) Следующая таблица представляет несколько типов системных кистей, которые Вы можете использовать.

 

Таблица 2.3

Типы системных кистей

 

Макрос Цвет заполнения
  BLACK_BRUSH Черный
  DKGRAY_BRUSH Темно-серый
  HOLLOW_BRUSH Прозрачный
  LTGRAY_BRUSH Светло-серый
  WHITE_BRUS Белый

 

Приведенные в таблице макросы можно использовать в качестве параметра GetStockObject() для получения соответствующей кисти.

Когда класс окна полностью определен, он должен быть зарегистрирован в системе. Для этого используется функция API RegisterClass(), прототип которой имеет следующий вид:

ATOM RegisterClass(CONST WNDCLASS *IpWClass).

Эта функция возвращает значение, идентифицирующее зарегистрированный класс окна. Тип АТОМ определяется при помощи typedef и означает WORD. Каждый класс окна определяется уникальным значением. Параметр lpWClass должен пред­ставлять адрес структуры WNDCLASS.

 

Создание окна

 

Когда класс окна определен и зарегистрирован, Ваше приложение может созда­вать окна этого класса, используя функцию API CreateWindow():

HWND CreateWindow(

LPCSTR IpClassName, // Имя класса окна

LPCSTR IpWinName, // Заголовок окна

DWORD dwStyle, // Стиль окна

int x, // Координаты x и y

int y, // левого верхнего угла

int Width, // Ширина окна

int Height, // Высота окна

HWND hParent, // Дескриптор родительского окна

HMENU hMenu, // Дескриптор главного меню

HINSTAHCE hThisInst, // Дескриптор приложения

LPVOID IpszAdditional // Указ. на дополн.информацию

);

Как видно из программы, многие параметры функции CreateWindow() могут принимать значения по умолчанию или равны NULL. Фактически для параметров х, у, Width и Height используется значение – макрос CW_USEDEFAULT, которое позволяет системе самостоятельно выбирать координаты и размеры окна. Если окно не имеет родительского окна, как в случае нашей программы, то параметр hParent должен быть равен HWND_DESKTOP (или NULL, – это тоже допускается). Если окно не должно содержать главного меню, параметр hMenu должен равняться NULL. И в случае, когда не требуется дополнительная информация, как это чаще всего и бывает, параметр lpszAdditional должен быть NULL. (Тип LPVOID определен как void* при помощи typedef. Название LPVOID сложилось исторически и означает "длинный (far) указатель на тип void".)

Значение остальных четырех параметров необходимо установить в программе. Прежде всего, параметр lpszClassName должен представлять указатель на строку, содер­жащую имя класса окна (то самое, которое мы давали при регистрации класса), а параметр lpszWinName – указатель на строку-заголовок окна. Указатель может быть равен NULL, или эта строка может быть пустой, однако обычно окно имеет какой-нибудь заголовок.

Стиль (или тип) создаваемого окна определяется параметром dwStyle. В нашей программе используется макрос

WS_OVERLAPPEDWINDOW,

который опре­деляет стандартное окно, имеющее системное меню, заголовок, рамку для изменения размеров, а также кнопки минимизации, развертки и закрытия. Используемый стиль окна является наиболее общим. Вы можете создавать окна, имеющие другие стили. Для этого следует прибегнуть к комбинации стилевых макросов, которые Вам нужны. Такая комбинация строится при помощи оператора логического сложения. Некоторые широко используемые стили приведены в таблице 2.4.

 

Таблица 2.4



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: