Навигация:
<< >> Оглавление Указатель

Описание пользователя

Глава 3. Использование стандартных модулей автокомпиляции

§3.7. Краткий перечень вводимых в модель описаний и реакций на события

§3.7.9. Внешний вид блока

§3.7.9.5. Дополнительное рисование блока

Это событие возникает у всех блоков при перерисовке окна подсистемы, в котором эти блоки находятся. В отличие от реакции на обычное рисование блока, возникновение этого события не зависит от способа рисования, выбранного в окне параметров: оно возникнет и для блоков, рисующих свое изображение программно, и для блоков, внешний вид которых задается векторной картинкой, и для простых прямоугольников с текстом. Обычно в реакции на это событие поверх изображения блока выводится различная дополнительная информация: например, иконки, сигнализирующие о каких-либо ошибках в блоке. Для рисования в этой реакции используются функции Windows API или специальные функции рисования RDS. Пример модели с реакцией на это событие приведен в §3.6.10.

Текст реакции на событие дополнительного рисования вводится на вкладке «события» левой панели редактора модели: раздел «внешний вид блока», подраздел «дополнительное рисование блока». В классе блока для нее создается функция с именем rdsbcppDrawAdditional следующего вида:

  // Block additional draw procedure
  void rdsbcppBlockClass::rdsbcppDrawAdditional( DrawData)
  {
     … пользовательский текст реакции … 
  }

Как и в функции реакции на обычное рисование, параметр DrawData – это указатель на структуру описания события RDS_DRAWDATA.

Следует учитывать, что при включенном избирательном обновлении окон подсистем (см. §2.10.2 руководства программиста) это событие может не возникать для блоков, изображаемых прямоугольником с текстом, поскольку такие блоки в этом режиме автоматически не перерисовываются. Если изображения, которые выводятся в реакции на это событие, могут изменяться в режиме расчета, при каждом таком изменении следует вызывать функцию rdsForceBlockRedraw для правильной работы избирательного обновления – в этом случае блок вместе с дополнительными изображениями будет принудительно перерисован при следующем обновлении окна по таймеру.

При написании моделей блоков без использования модуля автокомпиляции дополнительному рисованию блока соответствует константа RDS RDS_BFM_DRAWADDITIONAL.


<< >> Оглавление Указатель