2012-06-20 3 views

ответ

5

ShowWindow не перекрашивает окно. Вызов UpdateWindow отправляет WM_PAINT сообщение в окно и, таким образом, перекрашивает его.

7

Это совершенно не нужно, ваше окно будет красиво рисовать без него.

Вы увидите незначительное преимущество от него, если ваша программа отключается, делая много вещей после создания окна, но перед входом в цикл сообщений. У пользователя есть на что посмотреть. Наиболее типичным является заставка.

4

Обычно система отправляет WM_PAINT, только если очередь сообщений пуста. В нормальных условиях это достаточно хорошо и фактически оптимизирует много ненужной перерисовки. Сообщения в очереди часто изменят состояние приложения, которое часто может привести к недействительности части окна и, следовательно, приведет к еще одной картине (так что пользователь увидит новое состояние приложения). Таким образом, переименование происходит только после того, как все такие сообщения обрабатываются, и система думает, что содержимое нового окна будет действительным в течение некоторого времени (пока в очередь не попадет другое сообщение (ы)).

Однако, если вам необходимо принудительно направить WM_PAINT и обойти вышеприведенную логику, вы можете принудительно отправить WM_PAINT (если есть недопустимая область), вызвав UpdateWindow().

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