c++ - 自定义 CFileDialog 错误消息

标签 c++ mfc cfiledialog

如果有一种方法可以自定义 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 )
{
   ...
   ...
}

最佳答案

如果只是修改对话框没问题,可以安装一个钩子(Hook)SetWindowsHookEx与 WH_CBT。

关于c++ - 自定义 CFileDialog 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6927650/

相关文章:

c++ - 在选项卡选择上更新 CPropertyPage

C++ MFC 为 CTabCtrl 中的每个选项卡附加不同的对话框

windows - CFileDialog::OnInitDialog() 不调用

c++ - Apache 交叉编译错误./gen_test_char : cannot execute binary file

c++ - 如何检查运算符的优先级

c++ - txt 文件的输入在第二次读取/传递时不匹配 (C++)

c++ - 保证在突然终止或退出期间在 C++ 中调用的函数

c++ - MFC/C++ : Need distant "wall clock" time without resetting my system's time

c++ - 在我的程序中第二次使用 CFileDialog 时出现运行时错误 Debug Assertion failed