есть ещё один способ перетаскивания окна (отличается "минимальностью" кода для реализации):
case WM_LBUTTONDOWN:
if(LOWORD(lParam)<=16) //разрешаем перетаскивать окно за левый край размером 16 пикселей
SendMessage(hWnd, WM_SYSCOMMAND, 0xF012, 0);
return 1;