Функция DrvMovePointer (winddi.h)
Функция DrvMovePointer перемещает указатель на новую позицию и гарантирует, что GDI не будет мешать отображению указателя.
Синтаксис
void DrvMovePointer(
[in] SURFOBJ *pso,
[in] LONG x,
[in] LONG y,
[in] RECTL *prcl
);
Параметры
[in] pso
Указатель на структуру SURFOBJ , описывающую поверхность устройства отображения.
[in] x
Укажите координату X на дисплее, где драйвер должен разместить горячую точку указателя.
Отрицательное значение x указывает, что драйвер должен удалить указатель с экрана, так как рисование будет происходить там, где он находится в настоящее время. Если указатель был удален с экрана, а значение x не является отрицательным, драйвер должен восстановить указатель.
[in] y
Укажите координату Y на дисплее, где драйвер должен разместить горячую точку указателя.
Если драйвер установил флаг GCAPS_PANNING в структуре DEVINFO , отрицательное значение y указывает, что GDI вызывает эту функцию только для уведомления драйвера о текущем положении курсора. Текущую позицию можно вычислить как (x, y+pso-sizlBitmap.cy>). Драйвер, который не устанавливает флаг GCAPS_PANNING, никогда не получит отрицательную координату Y .
[in] prcl
Указатель на структуру RECTL , определяющую область, ограничивающую все пиксели, на которые влияет указатель на дисплее. GDI не будет рисовать в этом прямоугольнике без предварительного удаления указателя с экрана. Этот параметр может принимать значение NULL.
Возвращаемое значение
None
Remarks
Иногда драйверам требуется знать текущее положение указателя на экране , даже если GDI имитирует указатель (чтобы драйвер больше не получал обычные вызовы DrvMovePointer ) для обработки сдвига виртуальных дисплеев. Чтобы получить это уведомление, драйвер должен установить флаг GCAPS_PANNING в поле flGraphicsCaps структуры DEVINFO .
DrvMovePointer не будет вызываться при рисовании потока в драйвере дисплея, если флаг GCAPS_ASYNCMOVE не установлен в элементе flGraphicsCaps devINFO.
DrvMovePointer необходимо реализовать в драйверах отображения только при реализации DrvSetPointerShape .
Если драйвер зарегистрировал указанный указатель с помощью DrvSetPointerShape, DrvMovePointer не должен завершаться ошибкой.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | winddi.h (включая Winddi.h) |