1

CFileDialogエラーメッセージをカスタマイズする方法があればいいですね。

たとえば、[ファイル名] エディット ボックスに無効なドライブを入力すると、次のようなエラー メッセージが表示されます。

無効なドライブ

ここで別のエラーを表示したいと思います。サブクラス化せず に可能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 )
{
   ...
   ...
}
4

2 に答える 2

2

ダイアログを変更するだけでよい場合は、フックSetWindowsHookExを WH_CBT でインストールできます。

于 2011-08-03T14:09:40.193 に答える
0

この検証を削除し、その警告を表示せずにダイアログから戻る設定OFN_NOVALIDATEを見つけました。m_ofn.Flags

于 2011-08-03T14:36:16.617 に答える