вы можете проверить эту ссылку: http://msdn.microsoft.com/en-us/magazine/cc163789.aspx
...
FolderPick получает новый класс CMyFolderDialog с переопределениями для OnInitialized и OnValidateFailed.Когда диалоговое окно инициализируется, FolderPick устанавливает текст состояния и меняет имя кнопки «ОК» на «Выбери меня!»
void CMyFolderDialog::OnInitialized()
{
SetStatusText(_T("Nice day, isn't it?"));
SetOKText(L"Choose Me!");
}
Здесь следует подчеркнуть несколько моментов.Во-первых, CFolderDialog имеет оболочки, такие как SetStatusText и SetOKText для диалоговых сообщений папок, таких как BFFM_SETSTATUSTEXT и BFFM_SETOKTEXT.
Если бы вы программировали на C, вы бы вызвали :: SendMessage;с CFolderDialog вы просто вызываете оболочки.Единственное предостережение в том, что вы можете вызывать эти оболочки только из ваших виртуальных обработчиков уведомлений (OnInitialized, OnSelChanged и других), потому что m_hWnd действителен только во время фактического запуска диалога папки, а не до или после вызова BrowseForFolder.
Внутренне, CFolderDialog подклассирует диалог папки, когда его обратный вызов получает уведомление.Второе, на что следует обратить внимание, это то, что для некоторых сообщений BFFM_ требуются строки Unicode, а не LPCTSTR.Вот почему "Выбери меня!"во фрагменте находится строка широких символов (с префиксом L).
В документации Microsoft есть пара незначительных ошибок, на которые следует обратить внимание в случае, если вы попытаетесь запрограммировать SHBrowseForFolder на C. В документации написано, что нужно передать строкудля BFFM_SETOKTEXT в WPARAM;на самом деле, это LPARAM.В нем также говорится, что BFFM_SETSELECTION требуется строка Unicode, но BFFM_SETSELECTION доступна как в A, так и в W вариантах, поэтому вы можете использовать LPCTSTR.