Настройка сообщений об ошибках CFileDialog - PullRequest
1 голос
/ 03 августа 2011

Было бы неплохо, если бы был способ настроить сообщения об ошибках CFileDialog.

Например, если ввести неправильный диск в поле ввода Имя файла , появится сообщение об ошибке.как показано ниже.

Invalid Drive

Я хочу показать другую ошибку здесь.Возможно ли без подкласса CFileDialog?

Также нормально, если вместо сообщения об ошибке возвращается диалоговое окно.

Вот кодфрагмент:

CFileDialog dlgFile( TRUE, 0, 0,  OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, szFilters, 0, 0, 0 );
dlgFile.m_ofn.FlagsEx |= OFN_EX_NOPLACESBAR;
dlgFile.m_ofn.lpstrTitle= csTitle;
dlgFile.m_ofn.lpstrInitialDir = NULL;

const int nMaxFiles = 2512;
const int nBuffSize = ( ( nMaxFiles * ( MAX_PATH + 1 ) ) + 1 ) * sizeof( TCHAR );
dlgFile.GetOFN().lpstrFile = new TCHAR[ nBuffSize ];
::ZeroMemory( dlgFile.GetOFN().lpstrFile, nBuffSize );
dlgFile.GetOFN().nMaxFile = nBuffSize;
if( dlgFile.DoModal() == IDOK )
{
   ...
   ...
}

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

если все в порядке, просто измените диалог, вы можете установить хук SetWindowsHookEx с WH_CBT.

0 голосов
/ 03 августа 2011

Только что обнаружил, что установка OFN_NOVALIDATE в m_ofn.Flags удаляет эту проверку и возвращается из диалогового окна без отображения этого предупреждения.

...