Метод IDirect3DDevice9::SetCursorProperties (d3d9.h)
Задает свойства курсора.
Синтаксис
HRESULT SetCursorProperties(
[in] UINT XHotSpot,
[in] UINT YHotSpot,
[in] IDirect3DSurface9 *pCursorBitmap
);
Параметры
[in] XHotSpot
Тип: UINT
Смещение координат по оси X (в пикселях), обозначающее центр курсора. Смещение определяется относительно левого верхнего угла курсора. Когда курсору присваивается новое положение, изображение рисуется со смещением от этой новой позиции, определяемым путем вычитания координат горячей точки из положения.
[in] YHotSpot
Тип: UINT
Смещение координаты Y (в пикселях), обозначающее центр курсора. Смещение определяется относительно левого верхнего угла курсора. Когда курсору присваивается новое положение, изображение рисуется со смещением от этой новой позиции, определяемым путем вычитания координат горячей точки из положения.
[in] pCursorBitmap
Тип: IDirect3DSurface9*
Указатель на интерфейс IDirect3DSurface9 . Этот параметр должен указывать на поверхность ARGB 8888 (формат D3DFMT_A8R8G8B8). Содержимое этой поверхности будет скопировано и потенциально преобразовано во внутренний буфер, из которого отображается курсор. Размеры этой поверхности должны быть меньше размеров режима отображения и должны быть мощностью 2 в каждом направлении, хотя и не обязательно одинаковой мощности двух. Альфа-канал должен иметь значение 0.0 или 1.0.
Возвращаемое значение
Тип: HRESULT
Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если метод завершается сбоем, возвращаемое значение можно D3DERR_INVALIDCALL.
Комментарии
Курсор операционной системы создается и используется при любом из следующих условий:
- Оборудование настроило D3DCURSORCAPS_COLOR (см . раздел D3DCURSORCAPS), а размер курсора составляет 32 x 32 (это размер курсора в операционной системе).
- Приложение работает в оконном режиме.
Приложениям рекомендуется всегда перехватывать события WM_MOUSEMOVE и вызывать DXSetCursorPosition.
Функции курсоров Direct3D используют курсор GDI или программную эмуляцию в зависимости от оборудования. Пользователи обычно хотят отвечать на WM_SETCURSOR сообщение. Например, может потребоваться написать обработчик сообщений следующим образом:
case WM_SETCURSOR:
// Turn off window cursor.
SetCursor( NULL );
m_pd3dDevice->ShowCursor( TRUE );
return TRUE; // Prevent Windows from setting cursor to window class cursor.
break;
Или пользователям может потребоваться вызвать метод IDirect3DDevice9::SetCursorProperties , если они хотят изменить курсор.
Приложение может определить, какая поддержка оборудования доступна для курсоров, изучив соответствующие элементы структуры D3DCAPS9 . Как правило, оборудование поддерживает только курсоры 32x32, а при появлении окна система может поддерживать только курсоры 32x32. В этом случае IDirect3DDevice9::SetCursorProperties по-прежнему завершается успешно, но курсор может быть уменьшен до этого размера. Горячая точка масштабируется соответствующим образом.
Курсор не сохраняется при потере устройства. Этот метод должен вызываться после сброса устройства.
Требования
Целевая платформа | Windows |
Header | d3d9.h (включая D3D9.h) |
Библиотека | D3D9.lib |