如果有一种自定义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 )
{
...
...
}发布于 2011-08-03 14:09:40
如果只需要修改对话框,就可以安装带有WH_CBT的钩子WH_CBT。
发布于 2011-08-03 14:36:16
刚刚发现,将OFN_NOVALIDATE设置为m_ofn.Flags会删除此验证并从对话框中返回,而不会显示该警告。
https://stackoverflow.com/questions/6927650
复制相似问题