CFileDialog
- 
					
					
					
					
 Folgendes Problem: 
 Ich arbeite mit Windows 7 Home Premium, VS 2008 Standard MFC.
 In meinem längerem Programm habe ich folgenden Text:CFileDialog dlg(true); 
 dlg.DoModal();Es tut sich nichts ! 
 Bei Windows XP Home schon !
 Bei einem anderen Test-Programm unter Win 7 geht es auch.
 Habt Ihr eine Idee ?
 
- 
					
					
					
					
 Ich nochmals, sollte sich das Problem nicht beheben lassen, muss ich wohl die 
 Dialog-Box selber schreiben. Gibt es bei den MFC Unterstützung für dieses
 Vorhaben ? Wenn ja, welche ?
 
- 
					
					
					
					
 // Startverzeichnis initialisieren CFileDialog m_File(TRUE); m_File.m_ofn.lpstrInitialDir = "C:\\Windows\\"; // Nur Ordner Anzeigen // CFileDialog m_File(FALSE, NULL,strQuelle1, OFN_OVERWRITEPROMPT, // " Nur Ordner (*.!!!)|*.!!!"); // Nur Bilddateien anzeigen // CFileDialog m_File(TRUE, NULL, NULL, OFN_HIDEREADONLY | // OFN_OVERWRITEPROMPT, "Bild-Dateien (*.bmp, *.gif, *.jpeg, // *.jpg)|*.bmp;*.gif;*.jpeg;*.jpg||"); // Das gleiche geht auch mit .doc usw. // Text für die Titelleiste des Dialogs ändern m_File.m_ofn.lpstrTitle="Bitte wählen..."; // Dialogfeld öffnen if(m_File.DoModal()==IDOK) { }
 
- 
					
					
					
					
 HermannGo schrieb: So gehts ... // Startverzeichnis initialisieren CFileDialog m_File(TRUE); m_File.m_ofn.lpstrInitialDir = "C:\\Windows\\"; ...... leider nicht lt. MSDN Die folgende Liste der Member, die nicht von Windows Vista (oder höher) unterstützt werden: 
 lpstrCustomFilter
 lpstrInitialDir
 lCustData
 lpfnHook
 lpTemplateNamehttps://msdn.microsoft.com/de-de/library/43xtah3y.aspx Möglicherweise funktioniert das Beispiel aus der MSDN 
 
- 
					
					
					
					
 Du kannst auch einen CString anlegen: CString strQuelle1="C:\\Windows\"; Siehe den ersten auskommentierten Code. 
 Dann brauchst du lpstringInitialDir nicht.
 
- 
					
					
					
					
 Du kannst auch einen CString anlegen: CString strQuelle1="C:\\Windows\"; Siehe den ersten auskommentierten Code. 
 Dann brauchst du lpstringInitialDir nicht.
 
- 
					
					
					
					
 Hab einen Backslash hinter Windows vergessen 
 
- 
					
					
					
					
 HerrmannGo, tut mir leid, aber es hat nicht geklappt ! Ich habe auch schon 
 gegoogelt, dort wurde das Problem auch beschrieben, allerdings ohne Lösung.
 Nur zu blöd, dass bei Visual Studio immer wieder Bugs auftauchen !!!
 
- 
					
					
					
					
 merano schrieb: HermannGo schrieb: So gehts ... // Startverzeichnis initialisieren CFileDialog m_File(TRUE); m_File.m_ofn.lpstrInitialDir = "C:\\Windows\\"; ...... leider nicht lt. MSDN Die folgende Liste der Member, die nicht von Windows Vista (oder höher) unterstützt werden: 
 lpstrCustomFilter
 lpstrInitialDir
 lCustData
 lpfnHook
 lpTemplateNamehttps://msdn.microsoft.com/de-de/library/43xtah3y.aspx Möglicherweise funktioniert das Beispiel aus der MSDN Das funzt komischerweise doch. Kann sowohl Fenstertitel wie auch Startverzeichnis vorgeben. Hab Win7, 64bit, MS Visual Studio 2010. Nun weiß ich nicht was unter "Tut sich nichts" zu verstehen ist. Laut MSDN werden die Eingaben einfach ignoriert. Damit würde zunmindest das Dialogfeld zu sehen sein.