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).

Другие вопросы по тегам