Это часто происходит с отсутствующим break
в вашем переключателе / регистре, что приводит к попаданию кода в обработчик WM_QUIT. Первый шаг, который я предприму, чтобы это исправить, - добавить код в ваш обработчик WM_QUIT, который выводит uMsg. Это скажет вам, действительно ли был отправлен WM_QUIT или это просто проваливающийся код.
В двоичных файлах Release возможна точка останова, но источник не будет хорошо соответствовать действительному двоичному файлу, поэтому пошаговые и другие функции отладки становятся гораздо менее полезными.
С точки зрения установки точки останова установите ее на {,,user32.dll}_SendMessageA@16
или {,,user32.dll}_SendMessageW@16
в зависимости от того, используете ли вы Юникод или нет. Однако, вероятно, это не будет очень полезно для вас.