2015-04-08 3 views
0

Скажем, у меня есть следующее окно с кнопкой:Являются ли дочерние элементы управления окрашенными после родительского окна?

enter image description here

Если я минимизировать и восстановить окно, а затем два WM_PAINT сообщения будут отправлены, один за окном и один для кнопки.

Сообщение WM_PAINT для окна запросит перепланирование всего окна, а сообщение WM_PAINT для кнопки запросит перекраску Button.

Что делать, если кнопка сначала перекрашивается, а затем перекрашивается окно, разве это не означает, что картина для окна будет закрывать кнопку Button и сделать ее невидимой? Значит ли это, что окно окрашено перед кнопкой?

+2

Windows использует алгоритм * художника *. Сначала снизу. Таким образом, ваш воображаемый режим отказа просто не возникает. Даже если приложение имеет ошибку и делает это неправильно, флаг WS_CLIPCHILDREN по-прежнему предотвращает проблемы. –

ответ

2

Являются ли дочерние элементы управления окрашенными после родительского окна?

Да.

Картина для детей с одним и тем же родителем (братьями и сестрами) довольно сложна. Эти темы рассматриваются здесь: MSDN: Child Window Update Region.

+0

Я наткнулся на это, пока искал ответную копию документации. У вас это неверно (последнее предложение), см. Https://msdn.microsoft.com/en-us/library/dd183426(v=vs.85).aspx. –

+0

@sertac Спасибо, обновлено –

Смежные вопросы