Русский справочник по Win32 API - Тарас Сорока
Шрифт:
Интервал:
Закладка:
ClipCursor, POINT, SetCursor, SetCursorPos, ShowCursor .
LoadCursor
Функция LoadCursor загружает указанный ресурс курсора из исполняемого (. EXE ) файла, связанного с экземпляром приложения.
HCURSOR LoadCursor (
HINSTANCE hInstance , // дескриптор экземпляра приложения
LPCTSTR lpCursorName // строка с именем курсора или
// идентификатор ресурса
);
Параметры
hInstance - идентифицирует экземпляр модуля, чей исполняемый файл содержит курсор.
lpCursorName - указывает на завершающуюся нулем строку, которая сдержит имя ресурса загружаемого курсора. В качестве альтернативы, значение этого параметра может содержать идентификатор ресурса в младшем слове и нуль в старшем. Используйте макрос MAKEINTRESOURCE для создания данного значения.
Для использования предопределенных курсоров Windows установите значение параметра hInstance в NULL, а значение параметра lpCursorName в одно из следующих значений:
Значение
Описание
IDC_ARROW
Обычный курсор-стрелка.
IDC_IBEAM
Курсор в виде буквы " I ".
IDC_WAIT
Курсор "большие песочные часы".
IDC_CROSS
Курсор-перекрестие.
IDC_UPARROW
Курсор "стрелка вверх".
IDC_SIZE
Только Windows NT : четырехконечная стрелка
IDC _ ICON
Только Windows NT : пустая иконка.
IDC_SIZENWSE
Курсор изменения размера. Ориентирован с северо-запада на юго-восток.
IDC_SIZENESW
Курсор изменения размера. Ориентирован с северо-востока на юго-запад.
IDC_SIZEWE
Горизонтальный курсор изменения размера.
IDC_SIZENS
Вертикальный курсор изменения размера.
IDC_SIZEALL
Курсор изменения всех размеров. То же, что и IDC _ SIZE.
IDC _ NO
Перечеркнутый наискосок круг.
IDC _ APPSTARTING
Курсор "маленькие песочные часы со стрелкой".
В случае успеха возвращается дескриптор загруженного курсора.
В случае неудачи возвращается NULL . Для дополнительной информации об ошибке вызовите функцию GetLastError .
Комментарии
LoadCursor загружает ресурс курсора только в том случае, если он еще не загружен. В противном случае функция извлекает дескриптор существующего ресурса. Функция возвращает действительный дескриптор курсора, только если значение параметра lpCursorName указывает на ресурс курсора. Если оно указывает на любой другой тип ресурса, отличный от курсора (например, на иконку), возвращается не NULL, хотя возвращаемое значение и не будет действительным дескриптором курсора.
LoadCursor просматривает ресурс на предмет курсора, наиболее подходящего для текущего устройства изображения. Ресурс курсора может быть цветным или монохромным битовым образом.
См. также
LoadImage, MAKEINTRESOURCE, SetCursor, SetCursorPos, ShowCursor .
LoadCursorFromFile
Функция LoadCursorFromFile создает курсор, основанный на данных, содержащихся в файле. Файл задается его именем или идентификатором системного курсора. Функция возвращает дескриптор созданного курсора. Файлы, содержащие данные, могут быть либо файлами курсоров (. CUR ), либо файлами анимированных курсоров (. ANI ).
HCURSOR LoadCursorFromFile (
LPCTSTR lpFileName // указатель на имя файла с курсором или
// идентификатор системного курсора
);
Параметры
lpFileName - указывает на источник файловых данных, используемых для создания курсора. Файлы, должны быть либо файлами курсоров (. CUR ), либо файлами анимированных курсоров (. ANI ).
Если старшее слово lpFileName не равно нулю, то значение lpFileName указывает на строку с полным именем файла, содержащего данные для курсора.
Если старшее слово lpFileName равно нулю, нижнее слово представляет собой идентификатор системного курсора. Затем функция просматривает секцию [ Cursors ] в файле WIN . INI на предмет файла, связанного с именем указанного системного курсора. Ниже приводится список имен системных курсоров и идентификаторов:
Имена системных курсоров
Идентификаторы системных курсоров
"Arrow"
OCR_NORMAL
"IBeam"
OCR_IBEAM
"Wait"
OCR_WAIT
"Crosshair"
OCR_CROSS
"UpArrow"
OCR_UP
"Size"
OCR_SIZE
"Icon"
OCR_ICON
"SizeNWSE"
OCR_SIZENWSE
"SizeNESW"
OCR_SIZENESW
"SizeWE"
OCR_SIZEWE
"SizeNS"
OCR_SIZENS
"SizeAll"
OCR_SIZEALL
"No"
OCR_NO
"AppStarting"
OCR_APPSTARTING
Например, если в WIN . INI содержится следующее:
[Cursors]
Arrow = "arrow.ani"
то вызов LoadCursorFromFile (( LPWSTR ) OCR _ NORMAL ) заставит функцию LoadCursorFromFile получить данные из файла ARROW . ANI . Если WIN . INI не содержит строки для указанного системного курсора, вызов функции завершится неудачей и функция вернет NULL .
Возвращаемые значения
В случае успеха возвращается дескриптор нового курсора.
В случае неудачи возвращается NULL . Для получения дополнительной информации об ошибке вызовите функцию GetLastError . GetLastError может вернуть следующее значение: ERROR _ FILE _ NOT _ FOUND - указанный файл не может быть найден.
См. также
LoadCursor, SetCursor, SetSystemCursor .
SetCursor
Функция SetCursor устанавливает курсор.
HCURSOR SetCursor (
HCURSOR hCursor // дескриптор курсора
);
Параметры
hCursor - идентифицирует курсор. Курсор должен быть создан функцией CreateCursor или загружен функциями LoadCursor или LoadImage . Если значение этого параметра равно NULL, курсор убирается с экрана.
Windows 95: Ширина и высота курсора должны быть значениями, возвращаемые функцией GetSystemMetrics для параметров SM _ CXCURSOR и SM _ CYCURSOR . В дополнение, глубина цвета курсора должна совпадать с глубиной цвета экрана, или курсор будет монохромным.
Возвращаемые значения
Возвращается дескриптор предыдущего курсора, если таковой имеется.
Если предыдущего курсора нет, возвращается NULL .
Комментарии
Курсор устанавливается, только если он отличен от предыдущего курсора. В противном случае, функция возвращает управление немедленно.
Курсор является разделяемым ресурсом. Окно должно устанавливать курсор только в том случае, если он находится в его клиентской области и окно перехватывает ввод мыши. В системах без мыши, окно должно восстанавливать предыдущий курсор перед тем, как он покинет клиентскую область окна.
Если ваше приложение должно устанавливать курсор, когда он находится в окне, будьте уверены, что курсор класса для указанного класса окна установлен в NULL . Если курсор класса не NULL, система восстанавливает курсор класса каждый раз, когда перемещается мышь.
Курсор не отображается на экране, если внутренний счетчик отображений меньше нуля. Это происходит, если приложение использует функцию ShowCursor для скрытия курсора большее число раз, чем оно показывает курсор.
См. также
CreateCursor, GetCursor, GetSystemMetrics, LoadCursor, LoadImage, SetCursorPos, ShowCursor .
SetCursorPos
Функция SetCursorPos перемещает курсор в указанные экранные координаты. Если новые координаты находятся вне экранного прямоугольника, установленного последним вызовом функции ClipCursor , Windows автоматически устанавливает координаты, так что курсор остается внутри прямоугольника.
BOOL SetCursorPos (
int X , // горизонтальное положение
int Y // вертикальное положение
);
Параметры
X - определяет новую x -координату курсора в экранных координатах.
Y - определяет новую y -координату курсора в экранных координатах.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.