Шаг 47.
Visual Prolog.
События от мыши

    На этом шаге мы рассмотрим события от мыши.

   e_MouseDown(Pnt,ShiftCtrlAlt,Button)

    Это событие генерируется при нажатии кнопки мыши в клиентской области окна. Параметр Button идентифицирует нажатую кнопку: опрелены следующие константы: mouse_button_left, mouse_button_right, mouse_button_middle.

    Параметр ShiftCtrlAlt содержит состояние клавиш <Shift>, <Ctrl> и <Alt>. Определены следующие константы: c_Nothing, c_Shift, c_Control, с_ Alt, c_ShiftCtl, c_ShiftAlt, c_CtlAlt, c_ShiftCtlAlt.

    Структура Pnt содержит позицию в клиентском окне, в которой была нажата кнопка мыши.

    Обычно в ответ на событие e_MouseDown никакие действия не выполняются. Это событие используется для подготовки операции, которая должна реагировать на событие e_MouseMove до тех пор, пока не произойдет событие e_MouseUp. Чтобы быть уверенным в том, что событие e_MouseUp будет получено, вы должны следить за тем, чтобы мышь не "выходила" за пределы окна до отпускания кнопки мыши, т. к. иначе событие e_MouseUp не будет послано обработчику событий окна.

    Если щелкнуть мышью на кнопке, меню, границах и т. д., генерируются другие управляющие события, которые не являются событиями мыши.

Двойной щелчок кнопкой мыши

   e_MouseDbl(Pnt,ShiftControlAlt,Button)

    Это событие генерируется при двойном нажатии кнопки мыши в клиентской области окна. Событие e_MouseDbl не препятствует посылке составляющих его сообщений e_MouseDown и e_MouseUp.

Перемещение мыши в окне

   e_MouseMove(Pnt,ShiftCtrlAlt,ButtonsList)

    Это событие генерируется всякий раз, когда мышь перемещается внутри окна. Параметр Pnt содержит новое положение курсора мыши. Во время перемещения мыши будет генерироваться поток таких событий.

    Событие e_MouseMove может предназначаться для различных целей. Например, это событие может быть использовано для обработки перетаскивания мышью различных элементов (блок текста в текстовом редакторе Visual Prolog).

Отпускание кнопки мыши

   e_MouseUp(Pnt,ShiftCtrlAlt,Button)

    Это событие генерируется всякий раз при отпускании кнопки мыши в клиентской области окна.


    Замечание: Событию e_MouseUp не всегда предшествует событие e_MouseDown. Приложение должно уметь игнорировать такие ситуации.

    На следующем шаге мы рассмотрим события от клавиатуры.




Предыдущий шаг Содержание Следующий шаг