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.