CFileDialog öffnet sich nicht
-
Ich hab hier ein Problem, und zwar möchte ich aus einer Anwendung heraus einen FileDialog öffnen.
An sich ist das ja kein Problem, ich hab den Code:
void CApplicationDlg::OnBnClickedButton5() { CFileDialog m_File(TRUE, "*.dat", NULL, OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, ".dat-Dateien (*.dat)|*.dat|Alle Dateien (*.*)|*.*||", this); if(m_File.DoModal()==IDOK) { //Dateiverarbeitung }Wenn ich das ausführe (in meiner Anwendung auf den Button klicke, wo sich der Code befindet), dann gibts nen Modalstate, also Sanduhr, aber das Fenster taucht nicht auf! Und irgendwie kriege ich nicht raus, wieso

-
Ich habe deinen Code kopiert und in einem Testprojekt in eine Buttonfunktion eingefügt. Funktioniert ohne Probleme. Vielleicht hilft ja schon ein Erstellen -> Bereinigen; Erstellen -> Alles neu erstellen. Ansonsten mustt du den Debugger anwerfen und auf die Suche gehen...
-
davon mal abgesehen das an der stelle ein m_ vollkommener Schwachsin ist...
-
habe ich probiert - ohne Erfolg. Aber ich hab jetzt erst gesehen, dass ich eine Fehlermeldung in der Ausgabe bekomme:
First-chance exception at 0x77e9bc3f in Application.exe: 0x000006F4: An den Stub wurde ein Nullzeiger übergeben.wie gesagt, es befindet sich nur dieser oben genannte Code im Eventhandler für den Button!
Zur Sicherheit hab ich mal ein neues Projekt angelegt, und dort den Code eingefügt. Dasselbe Problem! Aso muss ja in VS was verstellt sein... was könnte es sein?
-
-
...auf jeden Fall versuchen (Lösung im (langen-)Link)
@langerlink: nicht schlecht

-
wohl eher nicht:
3. Run the app, press the button, then close the file dialog (with or without selecting a file).Bei mir geht er ja gar nicht erst auf...
-
Versuchen würde ich's (Dialog auf dem Heap erstellen)

Vieleicht hilft aber auch schon ein _T() um die LPTCSTR's.
-
ok, auf heap erstellen bringt nichts, ebensowenig das _T

-
Nur zur Sicherheit: DoModal returniert nicht? Ansonsten kontrollieren was GetLastError sagt.