如果有一种方法可以自定义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 )
{
...
...
}
最佳答案
如果只需要修改对话框就可以,可以在WH_CBT中安装一个钩子(Hook)SetWindowsHookEx。