Win32 API. Курсоры


Windows предоставляет набор стандартных курсоров, которые являются доступными для любой прикладной программы, чтобы использовать в любое время. Заголовочные файлы Windows содержат идентификаторы для стандартных курсоров - идентификаторы начинаются с префикса "IDC_". Каждый стандартный курсор имеет соответствующее заданное по умолчанию изображение, связанное с ним. Пользователь или прикладная программа могут заменять заданное по умолчанию изображение, связанное с любым стандартным курсором в любое время. Прикладная программа заменяет заданное по умолчанию изображение, используя функцию SetSystemCursor. Прикладная программа может использовать функцию GetIconInfo, чтобы изъять информацию о текущем изображении курсора и может рисовать курсор на экране, используя функцию DrawIconEx. Чтобы нарисовать заданное по умолчанию изображение стандартного курсора при обращении к функции DrawIconEx определите флажок DI_COMPAT. Если вы не определите флажок DI_COMPAT, DrawIconEx рисует стандартный курсор, использующий изображение, которое определил пользователь.

Пользовательские курсоры разрабатываются для использования в специфической прикладной программе и могут быть любого внешнего вида, определяемого разработчиком. 

Курсоры могут быть или одноцветными или цветными, и или статическими или "живыми". Тип курсора, используемого в отдельной компьютерной системе, зависит от системного дисплея. Старые дисплеи типа VGA не поддерживают цветные или "живые" указатели, однако новые дисплеи (чьи драйверы изображения используют механизм DIB (ФОРМАТ РАСТРОВОГО ИЗОБРАЖЕНИЯ)) поддерживают их.

Курсоры и иконки похожи и могут использоваться для взаимозаменяемости во многих ситуациях. Единственное различие между ними то, что изображение, заданное как курсор должно быть в формате, который дисплей может поддерживать. Например, курсор должен быть одноцветным для дисплея VGA

Острие (Hot Spot)

В курсоре, пиксель называемый острием (hot spot), отмечает точное экранное расположение, на которое воздействует событие мыши, типа щелчка ее кнопки. Как правило, острие - фокус курсора. Система устанавливает и распознает эту отметку как позицию курсора. Например, типичные острия - пиксель на кончике курсора имеющего форму стрелки и пиксель в середине курсора имеющего форму креста.

Когда происходит событие ввода информации от мыши, драйвер мыши Windows транслирует событие в соответствующее сообщение мыши, которое включает координаты острия. Windows посылает сообщение мыши окну, которое содержит острие или окну, которое захватило ввод информации от мыши. Для получения дополнительной информации, см. статью Ввод информации от мыши. 

Мышь и курсор

Windows отражает движение мыши, перемещая соответственно курсор на экране. Когда курсор перемешается над различными частями окон или в различных окнах, Windows (или прикладная программа) изменяет вид курсора. Например, когда курсор пересекает границу окна, Windows изменяет курсор в двунаправленную стрелку.

Если система не имеет мыши, Windows показывает на экране и перемещает курсор только тогда, когда пользователь выбирает некоторые системные команды, типа тех, которые используются для установки размера или перемещения окна. Чтобы обеспечить пользователя способом отображения и перемещения курсора, когда мышь не доступна, прикладная программа, может использовать функции курсора, чтобы моделировать движение мыши. Получив эту возможность моделирования, пользователь может использовать клавиши со стрелками на клавиатуре, чтобы перемещать курсор.

 

 
« Предыдущая статья   Следующая статья »