Подскажите как обновить окошко, ести я рисую покадровую анимацию. Рисуется линия с координатами X1, Y1, X2, Y2. Вычисляются новые координаты, стирается линия, рисуется линия с новыми координатами. Код такой: ;-------------------------------------------- TimerProc proc hWinWORD, hIDWORD .if dID==1 ;... ;Вычисление координат X1, Y1, X2, Y2 ;... invoke DrawLine .endif ret TimerProc endp ;-------------------------------------------- DrawLine proc LOCAL ps:PAINTSTRUCT invoke CreatePen, PS_SOLID, 10, 0 mov pPen, eax invoke BeginPaint, hWnd, addr ps mov hdc, eax invoke SelectObject, hdc, pPen ;Рисование invoke MoveToEx, hdc, X1, Y1, addr ps invoke LineTo, hdc, X2, Y2 invoke DeleteObject, pPen invoke DeleteDC, hdc ret DrawLine endp ;--------------------------------------------- WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM mov eax, uMsg ;... .elseif eax==WM_PAINT invoke DrawLine ;... ;Жму на кнопку Start: SetTimer, hWnd, 1, 10, addr TimerProc ;... ;Жму на Stop: KillTimer, hWnd, 1 ;... ;-------------------------------------------- Может что-то неправильно. Я на ассемблер только начал изучать.
По моему здесь надо вместо BeginPaint использовать GetDC/ReleaseDC. Или сделать так .elseif eax==WM_PAINT ;Вычисление координат X1, Y1, X2, Y2 invoke DrawLine TimerProc proc invoke InvalidateRect,hWnd, 0, 1