Nadam se da mi mozete pomoci.
Problem: Trebalo bi kad pritisnem Button da se u glavnom prozoru pojavi image(bmp) i da se krece od tacke A do tacke B (recimo svakih 10ms da se pomeri za 1px).
Ono sto sam ja dosad uspeo je:
Code:
.elseif uMsg == WM_COMMAND
.if wParam == 500
invoke GetDC,hWnd
mov hdc, eax
invoke Paint_Proc,hWnd,hdc,1
invoke ReleaseDC,hWnd,hdc
ret
.endif
.elseif uMsg == WM_COMMAND
.if wParam == 500
invoke GetDC,hWnd
mov hdc, eax
invoke Paint_Proc,hWnd,hdc,1
invoke ReleaseDC,hWnd,hdc
ret
.endif
Ovde pozivam Paint_Proc koja bi trebalo da iscrta to na ekranu
Paint_Proc izgleda ovako:
Code:
Paint_Proc proc hWin:DWORD, hDC:DWORD, smer:DWORD
LOCAL memDC:DWORD
local hOld:DWORD
LOCAL var1 :DWORD
LOCAL var2 :DWORD
LOCAL x :DWORD
invoke CreateCompatibleDC,hDC
mov memDC, eax
invoke SelectObject,memDC,hBitmap2
mov hOld, eax
.if smer == 1
mov var1, 0
mov x,600
.while var1 < 50 ;
invoke BitBlt,hDC,x,10,40,40,memDC,0,0,SRCCOPY
; -----------------------
; Simple delay technique
; -----------------------
invoke GetTickCount
mov var2, eax
add var2, 10 ; nominal milliseconds delay
.while eax < var2
invoke GetTickCount
.endw
inc var1
dec x
.endw
.endif
invoke SelectObject,hDC,hOld
invoke DeleteDC,memDC
ret
Paint_Proc endp
Paint_Proc proc hWin:DWORD, hDC:DWORD, smer:DWORD
LOCAL memDC:DWORD
local hOld:DWORD
LOCAL var1 :DWORD
LOCAL var2 :DWORD
LOCAL x :DWORD
invoke CreateCompatibleDC,hDC
mov memDC, eax
invoke SelectObject,memDC,hBitmap2
mov hOld, eax
.if smer == 1
mov var1, 0
mov x,600
.while var1 < 50 ;
invoke BitBlt,hDC,x,10,40,40,memDC,0,0,SRCCOPY
; -----------------------
; Simple delay technique
; -----------------------
invoke GetTickCount
mov var2, eax
add var2, 10 ; nominal milliseconds delay
.while eax < var2
invoke GetTickCount
.endw
inc var1
dec x
.endw
.endif
invoke SelectObject,hDC,hOld
invoke DeleteDC,memDC
ret
Paint_Proc endp
Problem je sto mi ovo iscrtava image pomerene za 1px, ali ne obrise onaj prethodni tako da izgleda kao da image ostavlja trag za sobom.
Hvala vam unapred!