[ radacha @ 01.05.2005. 13:18 ] @
Zdravo svima,

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


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


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!