Метод 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, а также следующие значения.
Код возврата | Описание |
---|---|
|
Указатель мыши успешно установлен. |
|
Объект не задал курсор; контейнер должен установить курсор или снова вызвать объект с параметром 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 |