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

Описания RDS

Приложения

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

А.5. Сервисные функции и макросы RDS

А.5.2. Управление работой RDS и функции общего назначения

А.5.2.36. rdsModalWindowMustClose – проверка принудительного закрытия модальных окон

# Приложения

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

### А.5. Сервисные функции и макросы RDS

#### А.5.2. Управление работой RDS и функции общего назначения

##### А.5.2.36. rdsModalWindowMustClose – проверка принудительного закрытия модальных окон

Функция rdsModalWindowMustClose возвращает TRUE, если в данный момент RDS принудительно закрывает все модальные окна.

      BOOL RDSCALL rdsModalWindowMustClose(void);

Тип указателя на эту функцию

RDS_BV

Возвращаемое значение

TRUE, если RDS принудительно закрывает модальные окна, FALSE в противном случае.

Примечания

Принудительное закрытие модальных окон применяется при программном управлении RDS из внешних приложений через модели блоков. При открытых модальных окнах некоторые действия выполнить невозможно (например, нельзя удалить блок, модель которого открыла модальное окно, пока это окно не будет закрыто), поэтому иногда возникает необходимость в принудительном закрытии окон. Для этого RDS посылает модальному окну верхнего уровня сообщение Windows WM_CLOSE (команда закрытия окна) до тех пор, пока все модальные окна не будут закрыты. Если процедура окна написана так, что при получении сообщения WM_CLOSE оно выводит пользователю запрос о необходимости сохранения данных, это может привести к появлению бесконечного цикла: модальное окно получает сообщение WM_CLOSE и выводит запрос, окно запроса тоже получает сообщение WM_CLOSE (что равносильно нажатию кнопки «Отмена») и возвращает управление модальному окну, не закрывая его, модальное окно снова получает сообщение WM_CLOSE и т.д. Функция rdsModalWindowMustClose позволяет отличить принудительное закрытие окна от нормального: если она вернет TRUE, окно следует закрыть без запросов к пользователю, чтобы описанный выше цикл не возник.

Проблемы, связанные с открытием модальных окон в моделях блоков, описаны в §1.8 и §2.7.5 руководства программиста.

См. также

rdsBlockModalWinOpen, rdsBlockModalWinClose, rdsModalWindowExists.