Я использую Win32 Platform SDK (в XP Pro) для создания приложения, состоящего из одного главного окна с несколькими дочерними окнами.
В CreateWindow передаются стили WS_OVERLAPPEDWINDOW | WS_VISIBLE (для главного окна) и WS_CHILDWINDOW | WS_VISIBLE для дочерних элементов.
Ошибка, которую я вижу, заключается в том, что когда другое приложение перетаскивается поверх моего приложения, нижележащие окна не перерисовываются. Простой (но неуклюжий) способ принудительного обновления - это «покачивать» строку заголовка.
Я предполагаю, что мне не хватает сообщения Windows или неправильного вызова функции win32. Большая часть моего кода взята из книги Петцольда 95.
Если это важно, главному окну не нужно ничего рисовать: дочерние окна обрабатывают все функции отображения.





Похоже, вы не вызываете DefWindowProc для сообщения WM_PAINT.
Вы уверены, что правильно обрабатываете событие WM_PAINT? В частности, убедитесь, что для этого сообщения WM_PAINT, которое вы вызываете:
DefWindowProc(hwnd,msg,wParam,lParam);
WM_PAINT будет вызываться, когда ваше окно нужно перекрасить.
Если вы пытаетесь обработать собственный рисунок окна, убедитесь, что вы вызываете BeginPaint и EndPaint в своем обработчике.