Нет, это не безопасно, потому что GDI копирует вашу строку несколько раз, например, чтобы сделать ее строкой с широким символом: вы используете SetWindowTextA, но это просто оболочка для SetWindowTextW, поэтому SetWindowTextA копирует вашу строку в строку с широким символом.
Для безопасного решения вы должны реализовать собственное текстовое поле с настраиваемой обработкой пользовательского ввода (WM_KEY * и т. Д.) И настраиваемым рендерингом (WM_DRAW).
Чтобы проверить его безопасность, запустите программу под OllyDbg и просканируйтевся память для вашей строки (Alt-M, Ctrl-B).