Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WinAPI.docx
Скачиваний:
49
Добавлен:
16.12.2018
Размер:
3.43 Mб
Скачать

Глава 6 Мышь

Мышь — это графическое устройство ввода информации с одной или более кнопками. Несмотря на многочисленные эксперименты с устройствами для ввода информации, такими как сенсорные экраны или световые перья, мышь (и ее варианты типа трекбола, широко используемого в портативных компьютерах) осталась единственным устройством, которое наиболее широко проникло на рынок персональных компьютеров.

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

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

6.1 Базовые знания о мыши

Windows поддерживает однокнопочную, двухкнопочную или трехкнопочную мышь, а также позволяет использовать джойстик или световое перо для имитации однокнопочной мыши. Поскольку однокнопочная мышь является простейшей, то многие программисты, работающие под Windows, традиционно не работают со второй и третьей кнопками. Однако двухкнопочная мышь стала стандартом де-факто, поэтому традиционная сдержанность в использовании второй кнопки неоправданна. Действительно, вторая кнопка мыши нажимается или для появления "контекстного меню", т. е. меню, которое появляется в окне помимо обычной строки меню, или для специальных операций перетаскивания. (Перетаскивание будет рассмотрено ниже.)

Вы можете определить наличие мыши с помощью функции GetSystemMetrics:

fMouse = GetSystemMetrics(SM_MOUSEPRESENT);

Значение fMouse будет равным TRUE (ненулевым), если мышь установлена. Для определения количества кнопок установленной мыши используйте следующий вызов:

cButtons = GetSystemMetrics(SM_CMOUSEBUTTONS);

Если мышь не инсталлирована, то возвращаемым значением этой функции будет 0.

Пользователи-левши могут поменять назначение кнопок мыши с помощью программы Control Panel. Хотя приложение может определить, было ли такое переключение, передав в функцию GetSystemMetrics параметр SM_SWAPBUTTON, но обычно это не нужно. Кнопка, нажимаемая указательным пальцем, считается левой кнопкой, даже если физически она находится на правой стороне мыши. Однако в обучающих программах вы можете нарисовать мышь на экране, и в этом случае вам надо будет узнать, менялось ли назначение кнопок мыши.

6.1.1 Несколько кратких определений

Когда пользователь Windows перемещает мышь, Windows перемещает по экрану маленькую растровую картинку, которая называется "курсор мыши" (mouse cursor). Курсор мыши имеет "вершину" (hot spot) размером в один пиксель, точно указывающее положение мыши на экране.

В драйвере дисплея содержатся несколько ранее определенных курсоров мыши, которые могут использоваться в программах. Наиболее типичным курсором является наклонная стрелка, которая называется IDC_ARROW и определяется в заголовочных файлах Windows. Вершина — это конец стрелки. Курсор IDC_CROSS (используемый в приведенных в этой главе программах BLOKOUT) имеет вершину в центре крестообразного шаблона. Курсор IDC_WAIT в виде песочных часов обычно используется программами для индикации того, что они чем-то заняты.

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

Например:

wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);

Ниже приведены определения терминов, соответствующих вашим действиям над кнопками мыши:

Щелчок — нажатие и отпускание кнопки мыши

Двойной щелчок — двойное быстрое одно за другим нажатие и отпускание кнопки мыши

Перетаскивание — перемещение мыши при нажатой кнопке

На трехкнопочной мыши кнопки называются левой кнопкой, средней кнопкой и правой кнопкой. В связанных с мышью идентификаторах, определенных в заголовочных файлах Windows, используются аббревиатуры LBUTTON, MBUTTON и RBUTTON. Двухкнопочная мышь имеет только левую и правую кнопки. Единственная кнопка однокнопочной мыши является левой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]