92978b58

Изменение внешнего вида курсора мыши


В предыдущем приложении мы изменяли пиктограмму курсора мыши, когда он находился над поверхностью окна Client Window . Процедура изменения пиктограммы очень проста - в момент обработки сообщения WM_MOUSEMOVE нужно получить идентификатор нужной пиктограммы и передать его функции WinSetPointer .

Вы можете загрузить идентификатор пиктограммы из ресурсов приложения с помощью функции WinLoadPointer , передав ей в качестве последнего параметра идентификатор курсора мыши, с которым этот курсор определен в файле описания ресурсов приложения, например:

HPOINTER hptr; hptr = WinLoadPointer(HWND_DESKTOP, NULLHANDLE, ID_APP_POINTER);

Здесь подразумевается, что файл описания ресурсов приложения содержит строку вида:

POINTER ID_APP_POINTER MOUSEMOV.PTR

В файле MOUSEMOV.PTR находится изображение курсора мыши, подготовленное приложением Icon Editor . С помощью этого приложения вы можете создавать не только пиктограммы, но и курсоры мыши.

В системе Presentation Manager имеется также набор встроенных изображений курсора мыши, который также доступен для вашего приложения. Получить идентификатор одного из таких курсоров можно с помощью функции WinQuerySysPointer :

hptr = WinQuerySysPointer (HWND_DESKTOP, SPTR_ICONINFORMATION, FALSE);

Идентификатор встроенного курсора передается этой функции через второй параметр. Третий параметр определяет, надо ли копировать курсор для приложения (значение FALSE) либо достаточно просто вернуть идентификатор встроенного курсора (значение TRUE). В первом случае перед завершением приложение должно удалить копию встроенного курсора, передав соответствующий идентификатор фукнции WinDestroyPointer через ее единственный параметр.

Получив идентификатор курсора мыши, вы можете изменить форму курсора при помощи функции WinSetPointer , вызвав ее при обработке сообщения WM_MOUSEMOVE :

WinSetPointer (HWND_DESKTOP, hptr);

Ниже мы приведем список всроенных идентификаторов курсора мыши вместе с кратким описанием и соответствующим изображением:

Идентификатор Описание Изображение курсора мыши
SPTR_ARROW Стандартный курсор
Изменение внешнего вида курсора мыши
SPTR_TEXT Текстовый курсор, используется при редакторовании текста
Изменение внешнего вида курсора мыши
SPTR_WAIT Курсор в виде часов, используется для режима, в котором пользователь должен ждать завершение какой-либо длительной операции
Изменение внешнего вида курсора мыши
SPTR_MOVE Курсор для перемещения объекта
Изменение внешнего вида курсора мыши
SPTR_SIZENWSE Курсор для одновременного изменения размеров окна по вертикали и горизонтали
Изменение внешнего вида курсора мыши
SPTR_SIZENESW Аналогично предыдущему, но с другим направлением стрелки
Изменение внешнего вида курсора мыши
SPTR_SIZEWE Курсор для изменения ширины окна
Изменение внешнего вида курсора мыши
SPTR_SIZENS Курсор для изменения высоты окна
Изменение внешнего вида курсора мыши
<
С помощью функции WinQuerySysPointer вы также можете получить идентификаторы встроенных пиктограмм, которые также можно использовать для установки курсора мыши:

Идентификатор Описание Изображение пиктограммы
SPTR_APPICON Пиктограмма приложения
Изменение внешнего вида курсора мыши
SPTR_ICONINFORMATION Информационное сообщение
Изменение внешнего вида курсора мыши
SPTR_ICONQUESTION Запрос информации от пользователя
Изменение внешнего вида курсора мыши
SPTR_ICONERROR Сообщение об ошибке
Изменение внешнего вида курсора мыши
SPTR_ICONWARNING Предупреждающее сообщение
Изменение внешнего вида курсора мыши
SPTR_ILLEGAL Запрещенные действия
Изменение внешнего вида курсора мыши
SPTR_FILE Файл
Изменение внешнего вида курсора мыши
SPTR_MULTFILE Группа файлов
Изменение внешнего вида курсора мыши
SPTR_FOLDER Папка
Изменение внешнего вида курсора мыши
SPTR_PROGRAM Программа
Изменение внешнего вида курсора мыши

Содержание раздела