CFileDialog::OnInitDialog() не вызывает
Я использую пользовательский диалог, который расширен от CFileDialog
, Проблема в том, что, OninitDialog()
не вызывается раньше DoModal()
,
Я настроил CFileDialog
в OninitDialog()
,
Я использую VS 2012 с ОС Win7.
Я не мог выяснить, что происходит не так.
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;
Документация Microsoft говорит, что OnInitDialog
не поддерживается в Windows Vista. То же самое верно для Windows 7 (и, вероятно, также для Windows 8).