Какое сообщение надо послать окну , чтобы перерисовать его? Пробовал invoke SendMessage,[MainWin],WM_PAINT,0,0 invoke UpdateWindow,[MainWin] invoke RedrawWindow,[ScreenWindow],Rec,0,RDW_INTERNALPAINT ничего не помогает. Шарик начинает крутиться, только при изменении размера окна. При SendMessage,[MainWin],WM_PAINT,0,0 окно получает сообщение, invoke BeginPaint,[hWnd],ps mov [hDC],eax call Display_ invoke BitBlt,[hDC],0,0,[cxDIB],[cyDIB],[pdcDIB],0,0,SRCCOPY invoke EndPaint,[hWnd],ps затем этот блок нормально отрабатывает, но окно не обновляется.
InvalidateRect() поставит WM_PAINT в очередь сообщений и окно отрисуется, когда более нет никаких сообщений, т.е. в последнюю очередь. Иногда надо сделать это немедленно, например при прокрутке окна или при изменении ширины панелей разделённых Splitter-ом. Для этой цели нужна следующая пара процедур: Код (Text): InvalidateRect (hWnd, pRect, TRUE); UpdateWindow (hWnd);