Click here to Skip to main content
13,248,927 members (46,256 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


2 bookmarked
Posted 7 Nov 2011

Displaying the 'new' Vista/Windows 7 File Dialog in 'old' MFC Apps

, 13 Nov 2011
Rate this:
Please Sign up or sign in to vote.
Displaying the 'new' Vista/Windows 7 File Dialog in 'old' MFC Apps
As far as I can tell, the only reason for the MFC CFileDialog class not displaying the new Vista/W7 style dialog (with breadcrumbs, etc.) is that it uses a hook for providing the various CFileDialog callbacks (CFileDialog::OnFileNameChange(), etc.).

So, if you _don't_ customize the file open dialog, all you need do to enable the new style dialogs is to derive a class from CFileDialog and disable the hook, as follows:
class CMyFileDialog : public CFileDialog
   // constructor/destructor
   int DoModal()
        // disable hook funtion
	m_ofn.lpfnHook = NULL;
	m_ofn.Flags &= ~OFN_ENABLEHOOK;
	return CFileDialog::DoModal();

And the real gift is that when the dialog returns, you can query the results through your class exactly as if you had used CFileDialog directly!

Alternatively, you can simply modify the CFileDialog instance directly:
CFileDialog dialog(...);
// disable hook funtion
dialog.m_ofn.lpfnHook = NULL;
dialog.m_ofn.Flags &= ~OFN_ENABLEHOOK;
if (dialog.DoModal() == IDOK)


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer Maptek
Australia Australia
.dan.g. is a naturalised Australian and has been developing commercial windows software since 1998.

You may also be interested in...


Comments and Discussions

GeneralThis is just CFileDialog checking that no one has been messi... Pin
.dan.g.16-Nov-11 18:28
member.dan.g.16-Nov-11 18:28 
Generalstrange---I tried it, and immedeately ran into the following... Pin
Holger B.-J.14-Nov-11 21:57
memberHolger B.-J.14-Nov-11 21:57 
QuestionRe: ASSERT(m_ofn.Flags & OFN_ENABLEHOOK); Pin
.dan.g.16-Nov-11 18:28
member.dan.g.16-Nov-11 18:28 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.171114.1 | Last Updated 13 Nov 2011
Article Copyright 2011 by .dan.g.
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid