If you move a window normally under Win98, the real window stays at his old position and you can only drag around such a spotted rectangle and if you then release the left mousebutton the window is drawn into its new position (into the strange rectangle you moved around before).
So, under WinXP it is done in another way, the window is directly drawn just when you move it (I think this is standard under WinXP)
I saw that this is also possible under Win98, I think there must be trick, so can you tell me this ...

(Hope you got the point)

Posted on 2003-10-19 08:00:47 by ChigpA
Hi ChigpA,

Right click desktop.
Click ActiveDesktop,Customize
Click Effect tab
Check "Show window contents while dragging.

Btw, this post doesn't belong in this forum.

best regards,

Posted on 2003-10-19 10:57:24 by czDrillard
I don't want to do this only for me. I want to program that. Cause on my machine this feature is currently deactivated but I have a program (RGN-Creator) who does this what I explained before although.
So there must be a trick that your program does this even if deactivated.


P.S.: So I think this thread belongs to where I posted it before
Posted on 2003-10-19 12:03:08 by ChigpA
make only temporary changes:

invoke SystemParametersInfo,SPI_SETDRAGFULLWINDOWS,1,0,0

make constant change:

Posted on 2003-10-19 14:09:36 by Ultrano
I think he wants only his own application to have "show contents while dragging", which would be useful when doing custom windows...
Posted on 2003-10-19 14:36:15 by f0dder
I am sure he won't need that - every Win>=95 has this option, and the "temporary" code I wrote above takes effect on the system only till the proggie exits.
But, in case I'm wrong, he'll need this algorithm of work:

isDragging dd ?
where POINT <>

OnMouseDown proc hWnd,x,y
local rect:RECT
invoke GetWindowRect,hWnd,addr rect
mov isDragging,1
mov eax,rect.left
sub eax,x
mov where.x,eax
mov eax,rect.top
sub eax,y
mov where.y,eax
invoke SetCapture,hWnd
OnMouseDown endp
OnMouseUp proc
.if isDragging
mov isDragging,0
invoke ReleaseCapture
OnMouseUp endp
OnMouseMove proc hWnd,x,y
.if isDragging
mov eax,where.x
mov ecx,where.y
add eax,x
add ecx,y
invoke SetWindowPos,hWnd,HWND_TOP,eax,ecx,0,0,SWP_NOSIZE
OnMouseMove endp

WindowLoop proc hWnd,msg,w,l
mov eax,l
mov ecx,eax
movsx eax,ax
shr ecx,16
movsx ecx,cx
invoke OnMouseDown,hWnd,eax,ecx
.elseif msg==WM_MOUSEMOVE
mov eax,l
mov ecx,eax
movsx eax,ax
shr ecx,16
movsx ecx,cx
invoke OnMouseMove,hWnd,eax,ecx
.elseif msg==WM_LBUTTONUP
invoke OnMouseUp
invoke DefWindowProc,hWnd,msg,w,l
WindowLoop endp
Posted on 2003-10-19 16:01:14 by Ultrano
thx guys I'll try evrything
Posted on 2003-10-20 11:08:07 by ChigpA