Когда (и как) выложить дочерние элементы окна Win32 в ответ на изменение размера?

Windows отправляет несколько сообщений при изменении размера окна:

WM_GETMINMAXINFO WM_ENTERSIZEMOVE WM_EXITSIZEMOVE WM_NCCALCSIZE WM_SIZING WM_SIZE WM_WINDOWPOSCHANGING WM_WINDOWPOSCHANGED

и возможно больше.

Если я хотел бы переместить детей, когда мое окно изменено,where а такжеhow я должен сделать это?
Я ищу "лучший" метод, т.е. метод с наименьшим количествомleast flicker.

мойcurrent Метод заключается в том, чтобы выполнить все перестановки внутриWM_NCCALCSIZE, с помощьюDeferWindowPos.
Однако я также пытался справиться с этим внутриWM_WINDOWPOSCHANGED... но независимо от того, где я обращаюсь, кажется, что естьalways по крайней мереone & Quot; момент & Quot; когда окно окрашено в промежуточном состоянии, где размер окна изменился, но его содержимое еще не было изменено.

Еще один эффект я быalso хотел бы избежать: переезд ребенкаafter оно уже переехало. Я не хочу, чтобы пользователь видел, как элемент управления скользит вниз, а затемback из-за моих изменений - у него должно быть как можно меньше переходных эффектов.

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

Ответы на вопрос(1)

Ваш ответ на вопрос