CFileDialog :: OnInitDialog()不会调用

时间:2013-03-26 08:51:08

标签: windows visual-c++ mfc cfiledialog

我正在使用从CFileDialog扩展的自定义文件对话框。 问题是,OninitDialog()之前没有调用DoModal()

我已在CFileDialog中自定义OninitDialog()

我正在使用VS 2012和Win7操作系统。

我无法找到,出了什么问题。

2 个答案:

答案 0 :(得分:2)

Microsoft documentation表示Windows Vista不支持OnInitDialog。 Windows 7也是如此(也可能适用于Windows 8)。

答案 1 :(得分:2)

我今天遇到了同样的问题;我想我找到了一个有效的解决方案,在你的类的构造函数中设置m_bVistaStyle = FALSE; 在这之后,我得到了OnInitDialog并且我能够自定义这个对话框。

CMyOpenDlg::CMyOpenDlg(LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
      DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
      CFileDialog(TRUE, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
{
   m_bVistaStyle = FALSE;