2013-03-26 2 views
5

CFileDialog에서 확장 된 사용자 지정 파일 대화 상자를 사용하고 있습니다. 문제는 전에 OninitDialog()이 호출되지 않는다는 것입니다.CFileDialog :: OnInitDialog() 호출하지 않습니다

OninitDialog()CFileDialog을 사용자 정의했습니다.

Win7 OS와 함께 VS 2012를 사용하고 있습니다.

나는 무엇이 잘못되었는지 알 수 없습니다.

답변

2

Microsoft documentation은 Windows Vista에서는 OnInitDialog이 지원되지 않는다고 말합니다. Windows 7 (및 Windows 8)에서도 마찬가지입니다.

+0

CFileDialog를 사용자 지정하는 다른 옵션이 있습니까 ?? 아니면 내가 솔루션을 얻을 수있는 다른 대화가 .. ?? 제발 제안 해주세요. –

+0

어쩌면 여기에 몇 가지 정보를 얻을 수 있습니다 http://forum.codejock.com/forum_posts.asp?TID=10550&title=cfiledialog-using-mfc-on-vista 그리고 여기에 http://msdn.microsoft.com/en-us /library/vstudio/bb775912.aspx. BTW 왜 CFileDialog OnInitDialog 필요합니까? –

+0

사실, 그 대화 상자를 수정하고 싶습니다. 내 앱 요구 사항에 따라 확인란, 버튼 및 콤보 상자를 추가하고 싶습니다. –

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; 
+0

Up-voted이지만 m_bVistaStyle을 생성자에서 설정하면 안됩니다 (적어도 소멸자에서 복원되어야 함). 대신 CFileDialog 객체를 만들 때 FALSE를 마지막 매개 변수'bVistaStyle'로 전달해야합니다. –

관련 문제