Бщие сведения о событиях мышки

      Комментарии к записи Бщие сведения о событиях мышки отключены

Во многих программах – приложениях Windows команды и действия выполняются при помощи манипулятора (мышка). Для обработки команд мышки С++ Builder имеет такие зарезервированные события:

Обозначение события Описание события
OnClick Щелчок мыши на компоненте и некоторые другие действия пользователя.
OnDblClick Двойной щелчок мыши на компоненте.
OnMouseDown Нажатие клавиши мыши над компонентом. Возможно определение нажатой кнопки и координат курсора мыши.
OnMouseMove Перемещение курсора мыши над компонентом. Возможно определение нажатой кнопки и координат курсора мышки.
OnMouseUp Отпускание ранее нажатой кнопки мыши над компонентом. Возможно определение нажатой кнопки и координат курсора мыши.
OnStartDrag Начало процесса «перетаскивания» объекта. Возможно определение перетаскиваемого объекта.
OnDragOver Перемещение «перетаскиваемого » объекта над компонентом. Возможно определение перетаскиваемого объекта и координат курсора мыши.
OnDragDrop Отпускание ранее нажатой кнопки мыши после «перетаскивания» объекта. Возможно определение перетаскиваемого объекта и координат мыши.
OnEndDrag Еще одно событие при отпускании ранее нажатой кнопки мыши после «перетаскивания» объекта. Возможно определение перетаскиваемого объекта и координат курсора мыши.
OnEnter Событие в момент получения элементом фокуса в результате манипуляции мышью, нажатия клавиши табуляции или программной передачи фокуса.
OnExit Событие в момент потери элементом фокуса в результате манипуляции мышью, нажатия клавиши табуляции или программной передачи фокуса
OnMouseWheel Событие при вращении колесика мыши в любую сторону.
OnMouseWheelUp Вращение колесика мыши вверх. Наступает, если вращение не обработано по событию OnMouseWheel.
OnMouseWheelDown Вращение колесика мыши вниз. Наступает, если вращение не обработано по событию OnMouseWheel.

В программах наиболее широко используется событие OnClick. Обычно оно наступает, если пользователь щелкнул на компоненте, т. е. нажал и отпустил кнопку мыши, когда указатель мыши находился на компоненте. Но это событие происходит также и при некоторых других действиях пользователя. Оно наступает, если:

uПользователь выбрал элемент в сетке, дереве, списке, выпадающем списке, нажав клавишу со стрелкой;

uПользователь нажал клавишу пробела, когда кнопка или индикатор были в фокусе;

uПользователь нажал клавишу Enter , а активная форма имеет кнопку по умолчанию, указанную свойством Defau

uПользователь нажал клавишу Esc , а активная форма имеет кнопку прерывания, указанную свойством Cancel;

uПользователь нажал клавиши быстрого доступа к кнопке или индикатору. Например, если свойство Caption индикатора записано как «Полужирный» и символ ‘П’ подчеркнут, то нажатие пользователем комбинации клавиш Alt + П вызовет событиеOnClick в этом индикаторе;

uПриложение установило в trueсвойствоCheckedрадиокнопки RadioButton;

uПриложение изменило свойство CheckedиндикатораCheckBox;

uВызван метод Click элемента меню;

uДля формы событие OnClickнаступает, если пользователь щелкнул на пустом месте формы или на недоступном компоненте.

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

Последовательность табуляции задается свойством TabOrder компонентов. Первоначальная последовательность табуляции определяется просто той последовательностью, в которой размещались управляющие элементы на форме. Первому элементу присваивается значение TabOrder , равное 0, второму 1,и т. д. Значение TabOrder, равное нулю, означает, что при первом появлении формы на экране в фокусе будет именно этот компонент (если не задано свойство формы ActiveControl ).

Во все обработчики событий, связанных с манипуляциями мыши (как и во все другие обработчики), передается параметр Sender типа Tobject . Этот параметр содержит указатель на компонент, в котором произошло событие. Он не требуется, если пишется обработчик события для конкретного компонента. Параметр Senderможно использовать для распознования источника события. Например, оператор

if (Sender = = Image1)

……;

Помимо параметра Senderв обработчики событий OnMouseDown и OnMouseUpпередаются параметры, позволяющие распознать нажатую кнопку мыши, нажатые при этом вспомогательные клавиши, а также определить координаты курсора мыши. Заголовок обработчика события OnMouseDownможет иметь, например, следующий вид:

void_fastcall TForm1:: Image1MouseDown(Tobject * Sender, TMouseButton Button, TShiftState Shift, int X, int Y)

Дополнительно к параметру Senderв обработчик передаются параметры Button, Shift, X, Y. Параметр Buttonопределяет нажатую в этот момент кнопку мыши. Тип TmouseButton – перечисляемый тип, определяемый следующим образом

enum TmouseButton{ mbLeft, mbRight, mbMiddle};

Значение mbLeftсоответствует нажатию левой кнопкой мыши, значение mbRight – правой, а значение mbMiddle – средней. Например, если вы хотите, чтобы обработчик реагировал на нажатие только левой кнопки мыши, можно его первым оператором написать:

if (Button ! = mbLeft) return;

В этом случае, если значение Buttonне равно mbLeft, т. е. была нажата не левая кнопка мыши, выполнение обработчика прервется.

Параметр Shif типа TshiftState определяет, какие вспомогательные клавиши на клавиатуре нажаты в момент нажатия кнопки мыши.

Во все события, связанные с мышью, передаются также координаты курсора X и Y. Эти параметры определяют координаты курсора в клиентской области компонента. Благодаря этому можно обеспечить различную реакцию в зависимости от того, в какой части клиентской области расположен курсор мыши.

В С++ Builder имеется встроенный редактор изображений Image Editor, который вызывается командой Tools/ Image Editor . Данный редактор позволяет создавать изображения в виде битовых матриц, пиктограмм, изображений курсоров и их сохранять не только в виде файлов, но и сразу же их включать в файл ресурсов приложения. В этом и заключается основное отличие встроенного редактора С++ Builder от других более мощных графических редакторов. Работа начинается с меню File, в котором можно выбрать раздел Open – открыть новый файл изображения или ресурсов, или раздел New – создать новый файл. Если выбрана команда New,то предварительно предлагается сделать выбор вида файла, который нужно создать:

Resource File (.res) Файл ресурсов
Component Resource File (.dcr) Файл ресурсов компонента
Bitmap File (.bmp) Файл битовой матрицы
Icon File (.ico) Файл пиктограммы
Cursor File (.cur) Файл изображения курсора

Статьи к прочтению:

C# №48. События. Общие сведения


Похожие статьи: