MFC: Как установить начальное значение объекта CMFCEditBrowseCtrl?
У меня есть приложение MFC, для которого я хочу добавить одно диалоговое окно для просмотра местоположения файла, используя CMFCEditBrowseCtrl
объект. Но я не смог правильно установить начальный путь, например "C:\Program Files\Path". При попытке это показывает китайские буквы. Как я могу это сделать? У меня есть код следующим образом:
m_pathCtrl.EnableFolderBrowseButton();
m_pathCtrl.SetWindowText(_T("C:\\Program Files\\Path"));
Но это показывает что-то вроде этого ->
Как правильно показать путь на английском? Пожалуйста, руководство.
1 ответ
Проблема возникает из-за того, что вы используете набор символов ASCII, но элемент управления ожидает Unicode. MS объясняет, как настроить диалоговое окно при использовании ASCII, здесь: https://docs.microsoft.com/en-us/cpp/mfc/reference/cmfceditbrowsectrl-class?view=msvc-170. Используйте редактор диалогового окна, чтобы вставить элемент управления редактированием в диалоговое окно, затем измените его тип с
CEdit
к
CMFCEditBrowseCtrl
в заголовочном файле.
Вы также можете увидеть правильные символы в окне, используя SetWindowTextW; например,
inputFilesCtrl.SetWindowTextW(L"C:\SomeDirectory");
. Китайские иероглифы, которые вы видите, — это то, что происходит, когда 1-байтовый набор символов интерпретируется как 2-байтовый.