Пример ниже ограничивает курсор окном приложения, а затем восстанавливают курсор в его предыдущем окне. Пример использует функцию GetClipCursor, чтобы зафиксировать область, в которой курсор может передвигаться, а функцию ClipCursor, чтобы ограничить и восстановить курсор.
Демонстрационный пример
RECT rcClip; // новая область для ClipCursor RECT rcOldClip; // предыдущая область для ClipCursor // Фиксированная область, в которой курсор // может перемещаться. GetClipCursor(&rcOldClip); // Получим размеры окна приложения. GetWindowRect(hwnd, &rcClip); // Ограничим курсор окном приложения. ClipCursor(&rcClip); // // Обработка вводимых данных от ограниченного курсора. // // Восстановим курсор к его предыдущей области. ClipCursor(&rcOldClip); |
Поскольку есть только один курсор, одновременно доступный в системе, приложение, которое ограничивает курсор, должно восстановить его перед передачей управления другому окну.