OnKeyDown event se poziva dok drzis taster pritisnut. Dakle... drzis desno... i imas OnKeyDown(desno), OnKeyDown(desno), OnKeyDown(desno), OnKeyDown(desno),... ne pustas desno, ali pritisnes i space OnKeyDown pocinje da se poziva za space OnKeyDown(space), OnKeyDown(space), OnKeyDown(space),... pustis space u dobijes OnKeyUp(space)... ti i dalje drzis desno, ali nema vise OnKeyDown(desno) jer OnKeyDown tj. WM_KEYDOWN poruka tako radi. Cim pustis bilokoji taster nema vise OnKeyDown. Posto se tebi tenk pomera bas u OnKeyDown eventu posle pritiska na space kretanje prestaje jer vise nema OnKeyDown poruke.
Pogledaj kako sam ja to uradio (ni to nije najsrecnije resenje, ali je bolje od tvog) pa ces videti razliku.
BTW da sam na tvom mestu, krenuo bih da pisem program iz pocetka jer si ga iskomplikovao bez potrebe.