NaMoving proc uses esi edi ecx edx ebx lParam:DWORD
mov ebx,dword ptr[lParam]
invoke GetSystemMetrics,SM_CXSCREEN
mov esi,eax
invoke GetSystemMetrics,SM_CYSCREEN
mov edi,eax
.if [ebx+RECT.right]>esi
mov eax,esi
sub eax,[ebx+RECT.right]
invoke OffsetRect,lParam,eax,0
.endif
.if [ebx+RECT.bottom]>edi
mov eax,edi
sub eax,[ebx+RECT.bottom]
invoke OffsetRect,lParam,0,eax
.endif
.if sdword ptr[ebx+RECT.left]<0
mov eax,[ebx+RECT.left]
neg eax
invoke OffsetRect,lParam,eax,0
.endif
.if sdword ptr[ebx+RECT.top]<0
mov eax,[ebx+RECT.top]
neg eax
invoke OffsetRect,lParam,0,eax
.endif
xor eax,eax
inc eax
ret
NaMoving endp
...
elseif uMsg==WM_MOVING
invoke NaMoving,lParam
...
Je to pro Masm