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

如果只修改对话框就可以了,你可以安装一个带有 WH_CBT的钩子SetWindowsHookEx 。

于 2011-08-03T14:09:40.193 回答
0

刚刚发现设置OFN_NOVALIDATE删除m_ofn.Flags此验证并从对话框返回而不显示该警告。

于 2011-08-03T14:36:16.617 回答