........
case WM_SIZE:
GetWindowRect(hWnd,&rt);
WinX = rt.right - rt.left;
WinY = rt.bottom - rt.top;
break;
case WM_MOVE:
GetWindowRect(hWnd,&rt);
WinX = rt.left;
WinY = rt.top;
break;
case WM_LBUTTONDOWN:
x1 = (int)LOWORD(lParam);
y1 = (int)HIWORD(lParam);
SetCapture(hWnd);
m_cDraw->Draw(1);
break;
case WM_MOUSEMOVE:
if(wParam && MK_LBUTTON)
{
x2 = (int)LOWORD(lParam);
y2 = (int)HIWORD(lParam);
//Modificado: solo mov. horiz.
MoveWindow(hWnd,WinX - (x1-x2) ,WinY/* - (y1-y2)*/ ,winW,winH,true);
break;
}
break;
case WM_LBUTTONUP:
ReleaseCapture();
m_cDraw->Draw(0);
break;
.........