Если ты пользуешь DDX, то тебе не обязательно создавать контрол (CEdit), можно сразу писать/читать в строку с помощью DDX_Text — это плюс такого подхода.
С другой стороны, если диалог достаточно сложный, то обычно бывает удобнее использовать Set(Get)WindowText в нужных местах, чем иметь здоровенную функцию DoDataExchange и постоянно вызывать UpdateData