У меня есть диалоговое приложение MFC C ++. Мой диалог отображает количество «страниц» (аналогично вкладке или диалоговому окну свойств).
Я отображаю каждую «страницу», отображая дочернее окно поверх клиентской области родителя. Это нормально работает в Vista, пока я не открою другое окно поверх дочернего элемента.
В таком случае Vista, кажется, рисует толстую белую прямоугольную рамку в моем родительском диалоговом окне, которое закрашивает поверх моих дочерних окон "страницы". Если я переместлю другое окно поверх этого белого прямоугольника, оно перекрасит затененную область очень хорошо.
Может кто-нибудь сказать, пожалуйста, что происходит? Возможно, Vista пытается очистить мою не клиентскую (фреймовую) область, используя неправильные координаты?
Мой родительский диалог - это скин-класс, производный от CDialog, который обрабатывает рисование моего окна заголовка и рамок. Я обнаружил, что если я не вызываю CDialog :: OnNcActivate () в моем собственном методе OnNcActivate (), белый прямоугольник не появляется. Конечно, если я сделаю это, я не смогу использовать свои дочерние окна ... но OnNcActivate может показаться связанным с этой проблемой.