Страница 1 из 1
Изменение названиия кнопки CFileDialog
Добавлено: 14 мар 2005, 22:15
Tviksi
Нужно изменить название кнопки в стандартном диалоге открытия/сохранеия файла.
Буду благодарна за любую помощь
Может быть кто нибудь смог воспользоватся функцией SetControlText :?:
Добавлено: 16 мар 2005, 11:34
Tima
Наверное следует создать свой диалог и грузить его по Save и SaveAs. Дело в том что этот диалог из ядра MFC и если в НЕМ изменять текст кнопки, то это следует делать другим образом - получить хэндл кнопки и поменять только тогда текст (не очень классный вариант).
Добавлено: 17 мар 2005, 10:22
Romeo
Не следует изобретать велосипед, господин Tima. Это диалог не из ядра MFC, а из ядра Windows. Есть Win32 API функции GetOpenFileName и GetSaveFileName, которые вызывают всем знакомый модальный диалог для выбора файла. Эти же функции позволяю программисту изменять внешний вид диалога посредством имплементирования хук-функции и задания её адреса в input структуре OPENFILENAME, поле lpfnHook. Подробности, как всегда, в MSDN.
Добавлено: 18 мар 2005, 00:27
Tviksi
Идея с хуком не плоха, вот только одно но.
Я создаю и вызываю диалог открытия/сохранеия файла в документе.
Мне нужно при создании объекта с FileDialog задать
CWnd* pParentWnd;
Собственно pParentWnd мне и для хука понадобится.
А вот получить его никак не получается
И все же:
Неужели никто, ни разу, не пользовался функцией CFileDialog::SetControlText,
она меня жутко заинтриговала

Добавлено: 18 мар 2005, 11:18
Romeo
Верно, именно с помощью этой функции и нужно изменять. Но изменять нужно в хуке. До вызова DoModal не существует HWND окна OpenDialog'а, поэтому просто сообщению некуда лететь
