Win32 API. Курсоры - Ограничение свободы перемещения курсора
ОГЛАВЛЕНИЕ
Страница 10 из 28
Ограничение свободы перемещения курсора
В примере ниже ограничивается перемещение курсора в окне прикладной программы, а затем курсор восстанавливается в его предыдущем окне. В примере используется функция GetClipCursor, чтобы записать область, в которой курсор может передвигаться и функция ClipCursor для ограничения и восстановления курсора.
RECT rcClip; // новая область для ClipCursor
RECT rcOldClip; // предыдущая область для ClipCursor
// Запись области, в которой курсор может перемещаться.
GetClipCursor(&rcOldClip);
// Получение габаритов окна приложения.
GetWindowRect(hwnd, &rcClip);
// Ограничение перемещения курсора в окне приложения.
ClipCursor(&rcClip);
//
// Обработка вводимой информации от ограниченного в перемещении курсора.
//
// Возвращение курсора в его предыдущую область.
ClipCursor(&rcOldClip);
Поскольку в системе имеется только один курсор, доступный одновременно, прикладная программа, которая ограничила перемещение курсора, должна восстановить курсор перед отказом от управления им в другом окне.