Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.2. События блока и связанные с ними описания

А.2.6. События пользовательского интерфейса и рисования внешнего вида блоков

А.2.6.11. RDS_BFM_MOUSEDOWN – нажатие кнопки мыши

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.2. События блока и связанные с ними описания

#### А.2.6. События пользовательского интерфейса и рисования внешнего вида блоков

##### А.2.6.11. RDS_BFM_MOUSEDOWN – нажатие кнопки мыши

Поток, в котором вызывается функция модели

Главный поток RDS.

Первый параметр функции модели (int CallMode)

Константа RDS_BFM_MOUSEDOWN.

Третий параметр функции модели (void *ExtParam)

Указатель на структуру описания события RDS_MOUSEDATA.

Возвращаемое функцией модели значение

RDS_BFR_DONE | Нажатие обработано блоком.
RDS_BFR_NOTPROCESSED | Нажатие не обработано блоком, оно будет передано в родительскую подсистему, а затем, если и она его не обработает, в RDS.
RDS_BFR_SHOWMENU | Нажатие правой кнопки мыши обработано блоком, но, несмотря на это, нужно вывести контекстное меню.

Примечания

Реакция на событие RDS_BFM_MOUSEDOWN вызывается при нажатии любой кнопки мыши на изображении блока в окне подсистемы, если одновременно выполняются следующие условия:

- RDS находится в режиме моделирования или расчета;
- изображение блока находится на видимом слое окна подсистемы, для которого разрешено редактирование;
- в параметрах блока разрешена реакция на мышь.

Кроме того, если блок захватил мышь (взведен флаг RDS_MOUSECAPTURE), реакция на это событие будет вызываться даже если курсор мыши покинет пределы изображения блока.

Блоки могут обрабатывать щелчки кнопок мыши только в режимах моделирования и расчета: в режиме редактирования мышь используется для редактирования схемы. Если изображения блоков перекрываются, нажатие кнопки мыши сначала будет передано в блок, изображение которого находится ближе всего к переднему плану. Если его модель не обработает нажатие, будет вызвана модель блока, находящегося дальше, и т.д. Если ни один блок не обработает нажатие, будет вызвана модель подсистемы для реакции на событие RDS_BFM_WINDOWMOUSEDOWN. Если же и подсистема не среагирует, нажатие будет обработано RDS (если нажата правая кнопка, будет показано контекстное меню). Реакция блоков на мышь подробно рассматривается в §2.12 руководства программиста. Следует помнить, что, в отличие от большинства других событий, при реакции на мышь возврат стандартной константы RDS_BFR_DONE сообщает RDS о том, что блок обработал действие пользователя. Таким образом, если разрешить в параметрах блока реакцию на мышь, блок начнет перехватывать все щелчки, пришедшиеся на его изображение, даже если не включать в модель реакции на события RDS_BFM_MOUSE*. Чтобы блок, которому разрешена реакция на мышь, был «прозрачным» для щелчков, его модель должна вернуть константу RDS_BFR_NOTPROCESSED (пример использования этой константы приведен в §2.12.3 руководства программиста). В реакции на нажатие правой кнопки модель может также вернуть константу RDS_BFR_SHOWMENU, информируя RDS о том, что, хотя нажатие обработано, необходимо все равно вывести контекстное меню блока. При нажатиях других кнопок возврат RDS_BFR_SHOWMENU аналогичен возврату RDS_BFR_NOTPROCESSED.

См. также

RDS_MOUSEDATA, RDS_BFM_MOUSEDBLCLICK, RDS_BFM_MOUSEUP, RDS_BFM_MOUSEMOVE, RDS_BFM_WINDOWMOUSEDOWN, RDS_BFM_WINDOWMOUSEUP, RDS_BFM_WINDOWMOUSEMOVE, RDS_BFM_WINDOWMOUSEDBLCLICK, RDS_BFM_MOUSESELECT.