CFileOpen unter NT
-
void CFre_EinstellungDlg::OnBtGif() { CFileDialog m_ldFile(TRUE,"gif","*.gif",OFN_HIDEREADONLY,"Bild-Dateien *.gif",this); CString home = getenv ("Userprofile"); home = home + ("\\Eigene Dateien\\"); m_ldFile.m_ofn.lpstrInitialDir= home; if (m_ldFile.DoModal() ==IDOK) { m_strGif = m_ldFile.GetPathName(); } GetDlgItem(IDC_EDIT_GIF)->SetFocus (); UpdateData(FALSE); }Wenn ich unter NT eine Datei öffnen möchte, passiert nix (Dialog geht nicht auf). Dies passiert aber nur unter NT. Habe keine Ahnung warum, in der MSDN steht auch nix darüber.
-
Mal geschaut, was in home drinsteht?
-
ich habe bei mir Win2000 drauf. Im Debug steht dann bei mir der Userprofile Pfad drin.
-
> kein Kommentar <<<
-
Tut mir Leid verstehe ich nicht.
-
Also ich habe mir mal eine MessageBox mit dem Pfad ausgeben lassen. Dort steht der Pfad richtig drin. Woran könnte es denn noch liegen
-
Ach ja.
Es scheint wirklich am CFileOopen zu liegen. Ich habe auch Standardverzeichnisse angegeben (c:\).
-
Wenn man mal in die MSDN schauen würde ...
The lpszFilter parameter is used to determine the type of filename a file must have to be displayed in the file list box. The first string in the string pair describes the filter; the second string indicates the file extension to use. Multiple extensions may be specified using ';' as the delimiter. The string ends with two '|' characters, followed by a NULL character. You can also use a CString object for this parameter.
For example, Microsoft Excel permits users to open files with extensions .XLC (chart) or .XLS (worksheet), among others. The filter for Excel could be written as:
static char BASED_CODE szFilter[] = "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";
-
Ich hatte mal zum Testen alle Parameter auf NULL gesetzt, aber ich hatte das Problem trotzdem. Halt wie gesagt nur unter WIndows NT.
mfG
-
Habe jetzt auch nochmal das Besispiel aus der MSDN genommen, selbst das funktioniert ja nicht.
-
Ich habs gefunden:
CFileDialog m_ldFile(TRUE,"gif","*.gif",OFN_HIDEREADONLY,"Bild-Dateien *.gif",this);
SO:
CFileDialog m_ldFile(TRUE,"gif","*.gif",OFN_HIDEREADONLY,"Bild-Dateien .gif",this*, 0**);
Unter anderen Betriebssystemen braucht man den Parameter anscheinend nicht, nur unter Win NT.