Finestre di dialogo dei file in MFC 9.0

 C Programming >> Programmazione C >  >> Tags >> MFC
Finestre di dialogo dei file in MFC 9.0

Windows Vista ha riprogettato l'aspetto delle finestre di dialogo dei file. MFC 9.0 (che verrà fornito con Visual Studio 2008) è stato aggiornato per supportare il nuovo aspetto grafico. Se si compila l'applicazione MFC con VS 2008 si ottengono le nuove finestre di dialogo dei file senza ulteriori modifiche. D'altra parte, se si esegue l'applicazione in Win XP, vengono visualizzate le vecchie finestre di dialogo dei file. Ciò è possibile grazie a un parametro aggiuntivo al costruttore di CFileDialog . La vecchia firma del costruttore era:

explicit CFileDialog( 
   BOOL bOpenFileDialog, 
   LPCTSTR lpszDefExt = NULL, 
   LPCTSTR lpszFileName = NULL, 
   DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
   LPCTSTR lpszFilter = NULL, 
   CWnd* pParentWnd = NULL, 
   DWORD dwSize = 0);

Il nuovo costruttore in MFC 9.0 ha un parametro aggiuntivo, un flag BOOL che indica se le finestre di dialogo di Vista devono essere visualizzate o meno.

explicit CFileDialog( 
   BOOL bOpenFileDialog, 
   LPCTSTR lpszDefExt = NULL, 
   LPCTSTR lpszFileName = NULL, 
   DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
   LPCTSTR lpszFilter = NULL, 
   CWnd* pParentWnd = NULL,
   DWORD dwSize = 0, 
   BOOL bVistaStyle = TRUE);

Per visualizzare le finestre di dialogo dei file di Vista, tutto ciò che devi fare è creare un'istanza di CFileDialog oggetto e creare la finestra di dialogo stessa:

CFileDialog dlg(TRUE, NULL, NUL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
                L"Text files (*.txt)|*.txt||", this); 
dlg.DoModal();

Puoi ancora utilizzare l'aspetto della vecchia finestra di dialogo del file se imposti l'ultimo parametro su FALSE:

CFileDialog dlg(TRUE, NULL, NUL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
                L"Text files (*.txt)|*.txt||", this, 0, FALSE); 
dlg.DoModal();

Questa vecchia finestra di dialogo è ciò che ottieni automaticamente durante l'esecuzione su un sistema operativo precedente.