А через фильтр сообщений не получится?
Каким образои?
Выведи обработку рисования в кокой-нибудь отдельный класс. Он будет проверять флаги и т.п., а предоставлять максимально удобный интерфейс для отрисовки. Окна будут юзать этот класс.
Базовый класс есть, но "что рисовать" не может быть общим для всех, у каждого окна свой набор объектов (иногда всего 1 объект)
Приведу пример для предложенного мной решения: допустим, есть окно, отображающее графический файл. Файл загружается по сети долго. Сервер обновляет данный файл. Пользователь нажимает кнопку "обновить". Команда идет в контейнер, тот выбрасывает сигнал updating(). Окно сразу же стирается и пишется "Loading... 0%". Далее по мере загрузки контейнер периодически бросает сигнал duringUpdate(). Соответственно в окне "Loading... 1%" и т.д. Когда файл будет загружен, контейнер бросает сигнал updated(), и окно отображает файл.
Ну это ситуация простая - сначала все загрузили - потом все отрисовали. Моя же задача "исключить" из рисования невалидный объект