Win32 Windows перерисовать через верхнее окно

У меня есть приложение Win32 с несколькими дочерними окнами в главном окне. Во время выполнения я расширяю одно из дочерних окон, чтобы оно покрывало другие дочерние окна. Когда я перемещаю это окно по заголовку (вызывая сообщение WM_EXITSIZEMOVE), окна под расширенным окном «просвечивают» (перерисовываются поверх расширенного окна), вызывая видимые артефакты. Как я могу предотвратить это?

РЕДАКТИРОВАТЬ:
Когда я раскрываю окно, я использую следующий код:

SetWindowPos( hWnd, HWND_TOP, rct.left, rct.top, rct.right, rct.bottom, 0 );

Кроме того, единственные окна, которые просвечивают, являются окнами разделителя, созданными с EasySplit …

1

Решение

Примените стиль WS_CLIPCHILDREN для родителя и WS_CLIPSIBLINGS для детей.

2

Другие решения

Я верю, что есть функции, которые будут использоваться с функцией, которая скажет что-то вроде «перерисовать», а затем будет иметь значение. Хотя я не уверен, в вашем коде уже может быть значение, подобное этому, связанное с дочерними окнами. Просто выключите его, и это может решить вашу проблему. Если это не помогает, или если такой опции нет, попробуйте поискать группу функций и посмотрите, объяснен ли там синтаксис. Удачи!!!

0

По вопросам рекламы [email protected]