Если вам просто нужен элемент управления для редактирования, который позволяет пользователю вводить имя записи каталога, это возможно. Используемый вами класс C ++ является оболочкой для метода Win32 SHBrowseForFolder (), и этот метод поддерживает наличие поля для редактирования, устанавливая BIF_EDITBOX (или лучше BIF_USENEWUI) в элементе ulFlags структуры BROWSEINFO.
Глядя на класс C ++, кажется, что самый простой способ добиться этого - передать BIF_USENEWUI в качестве члена dwFlags в вызове конструктора. (Хотя я хотел бы просто вызвать SHBrowseForFolder напрямую и не беспокоиться о классе C ++.)
Обратите внимание на предупреждение об этом флаге в MSDN, однако: OleInitialize () или CoInitialize () должны быть вызваны до вызова диалога с этим флагом.
В более общем плане, если вам нужен элемент управления для редактирования, который вы можете использовать для своих собственных целей, позволяющий пользователю вводить что-либо, это более проблемная задача: нет способа расширить диалог, используемый SHBrowseForFolder (), с помощью пользовательских элементов управления. Если вы захотите это сделать, вам придется заново реализовать весь диалог, что не очень хорошая идея.
Кроме того, в качестве заключительного замечания, если вы можете ограничить себя Vista (и более поздними версиями), то есть другой способ открыть диалоговое окно выбора каталога: используйте новый интерфейс COM IFileDialog с флагом FOS_PICKFOLDERS.