У меня есть приложение Win32 с несколькими дочерними окнами в главном окне. Во время выполнения я расширяю одно из дочерних окон, чтобы оно покрывало другие дочерние окна. Когда я перемещаю это окно по заголовку (вызывая сообщение WM_EXITSIZEMOVE), окна под расширенным окном «просвечивают» (перерисовываются поверх расширенного окна), вызывая видимые артефакты. Как я могу предотвратить это?
РЕДАКТИРОВАТЬ:
Когда я раскрываю окно, я использую следующий код:
SetWindowPos( hWnd, HWND_TOP, rct.left, rct.top, rct.right, rct.bottom, 0 );
Кроме того, единственные окна, которые просвечивают, являются окнами разделителя, созданными с EasySplit …
Примените стиль WS_CLIPCHILDREN для родителя и WS_CLIPSIBLINGS для детей.
Я верю, что есть функции, которые будут использоваться с функцией, которая скажет что-то вроде «перерисовать», а затем будет иметь значение. Хотя я не уверен, в вашем коде уже может быть значение, подобное этому, связанное с дочерними окнами. Просто выключите его, и это может решить вашу проблему. Если это не помогает, или если такой опции нет, попробуйте поискать группу функций и посмотрите, объяснен ли там синтаксис. Удачи!!!