когда пользователь щелкает мышью и удерживает нажатой, приложение блокируется.
Этого не должно быть в стандартном макете цикла сообщений.
Вы не можете заблокировать полученное сообщение, если хотите проделать какую-то долгую операцию (например, ожидание сообщения «вверх»).
Так что я думаю, что ваша проблема в логике WM_LBUTTONDOWN
. Просто установите флажок и не ждите сообщения WM_LBUTTONUP
.