Поделиться через


Метод IPointerInactive::OnInactiveSetCursor (ocidl.h)

Задает указатель мыши для неактивного объекта. Этот метод вызывается контейнером при получении метода WM_SETCURSOR, когда неактивный объект находится под указателем мыши.

Синтаксис

HRESULT OnInactiveSetCursor(
  [in] LPCRECT pRectBounds,
  [in] LONG    x,
  [in] LONG    y,
  [in] DWORD   dwMouseMsg,
  [in] BOOL    fSetAlways
);

Параметры

[in] pRectBounds

Ограничивающий прямоугольник объекта, указанный в единицах координат клиента содержащего окна. Этот параметр сообщает объекту его точное положение и размер на экране при получении сообщения WM_SETCURSOR. Это значение указывается в единицах системы координат клиента.

[in] x

Горизонтальная координата расположения мыши в единицах содержащего клиента окна.

[in] y

Вертикальная координата расположения мыши в единицах содержащего клиента окна.

[in] dwMouseMsg

Идентификатор сообщения мыши, для которого произошло WM_SETCURSOR.

[in] fSetAlways

Если это значение равно TRUE, объект должен задать курсор; Если это значение равно FALSE, объект не обязан устанавливать курсор и должен возвращать S_FALSE в этом случае.

Возвращаемое значение

Этот метод может возвращать стандартное возвращаемое значение E_FAIL, а также следующие значения.

Код возврата Описание
S_OK
Указатель мыши успешно установлен.
S_FALSE
Объект не задал курсор; контейнер должен установить курсор или снова вызвать объект с параметром fSetAlways , равным TRUE.

Комментарии

Контейнер вызывает этот метод, чтобы навести указатель мыши на неактивный объект после проверки политики активации объекта путем вызова метода IPointerInactive::GetActivationPolicy . Если объект не запросил активацию на месте с помощью этого вызова, контейнер отправляет последующие сообщения WM_SETCURSOR в неактивный объект, вызывая OnInactiveSetCursor , пока указатель мыши остается над объектом.

Чтобы избежать ошибок округления и упростить задание в объекте реализации, этот метод принимает координаты окна в единицах содержащего его клиентского окна, то есть окна, в котором отображается объект, вместо обычных единиц HIMETRIC . Таким образом, одни и те же координаты и путь к коду можно использовать, когда объект является активным и неактивным. Координаты окна определяют положение мыши. Ограничивающий прямоугольник также указывается в той же системе координат.

OnInactiveSetCursor принимает дополнительный параметр fSetAlways, который указывает, обязан ли объект устанавливать курсор. Контейнеры должны сначала вызвать этот метод с этим параметром FALSE. Объект может вернуть S_FALSE, чтобы указать, что курсор не задан. В этом случае контейнер должен либо задать сам курсор, либо, если он не хочет этого делать, снова вызовите метод OnInactiveSetCursor с параметром fSetAlwaysзначение TRUE.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ocidl.h

См. также раздел

IPointerInactive