Электронная библиотека книг Александра Фролова и Григория Фролова.
 
Библиотека
Братьев
Фроловых
Электронная библиотека книг Александра Фролова и Григория Фролова.
Библиотека системного программиста
Программирование на JAVA
ПК. Шаг за шагом
Другие книги
Восстановление данных
Антивирусная защита
Статьи для
программистов
Пользователю компьютера

Программирование для IBM OS/2

© Александр Фролов, Григорий Фролов
Том 25, М.: Диалог-МИФИ, 1993, 286 стр.

[Назад] [Содеожание] [Дальше]

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

В предыдущем приложении мы изменяли пиктограмму курсора мыши, когда он находился над поверхностью окна 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 Программа

[Назад] [Содеожание] [Дальше]


Создание интернет-магазинов: http://www.shop2you.ru/ © Александр Фролов, Григорий Фролов, 1991-2016