PopFileOpenDlg funktioniert nicht
-
Hi Leute!
Könnt ihr mir vielleicht sagen, warum die die folgenden Funktionen nicht funktionieren? Das Programm wird zwar erfolgreich compiliert, doch es erscheint kein "Datei öffnen" - Dialog. Woran könnte das liegen?Vielen, vielen Dank schonmal für eure Antworten!
PS: Liegt das Problem vielleicht daran, dass ich nicht Windows NT mit Unicode benutze? (Nur eine Vermutung!!)
#include "StdAfx.h" #include <windows.h> #include <commdlg.h> static OPENFILENAME ofn; // Initialisierung der OPENFILENAME-Struktur void PopFileInitialize (HWND hwnd) { // welche Dateitypen sollen ausgewählt werden können static TCHAR szFilter[] = TEXT ("Textdateien (*.TXT)\0*.txt\0") \ TEXT ("ASCII-Dateien (*.ASC)\0*.asc\0") \ TEXT ("Alle Dateien (*.*)\0*.*\0\0"); ofn.lStructSize = sizeof (OPENFILENAME); ofn.hwndOwner = hwnd; ofn.hInstance = NULL; ofn.lpstrFilter = szFilter; ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = 0; ofn.nFilterIndex = 0; ofn.lpstrFile = NULL; // Bei Öffnen bzw. Schließen gesetzt ofn.nMaxFile = MAX_PATH; ofn.lpstrFileTitle = NULL; // Bei Öffnen bzw. Schließen gesetzt ofn.nMaxFileTitle = MAX_PATH; ofn.lpstrInitialDir = NULL; ofn.lpstrTitle = NULL; ofn.Flags = 0; // Bei Öffnen bzw. Schließen gesetzt ofn.nFileOffset = 0; ofn.nFileExtension = 0; ofn.lpstrDefExt = TEXT ("txt"); ofn.lCustData = 0L; ofn.lpfnHook = NULL; ofn.lpTemplateName = NULL; } // Den "Öffnen" Dialog anzeigen und das Handle zum File zurückliefern BOOL PopFileOpenDlg (HWND window, PTSTR pstrFileName, PTSTR pstrTitleName) { ofn.hwndOwner = window; ofn.lpstrFile = pstrFileName; ofn.lpstrFileTitle = pstrTitleName; ofn.Flags = OFN_HIDEREADONLY | OFN_CREATEPROMPT; return GetOpenFileName (&ofn); }PopFileOpen und PopFileInitialize werden in meiner Anwendung folgendermaßen aufgerufen:
#include "StdAfx.h" #include <windows.h> #include "resource.h" #include <commdlg.h> void PopFileInitialize (HWND); BOOL PopFileOpenDlg (HWND, PTSTR, PTSTR); static TCHAR szFileName[MAX_PATH], szTitleName[MAX_PATH]; PopFileOpenDlg (hwnd, szFileName, szTitleName); //[...] //[...] //[...]
-
Hallo,
wo ist denn da der Aufruf, ich sehe keinen...

MfG
-
Wie kann ich denn die Funktion(en) aufrufen?
-
Die WinMain-Methode habe ich absichtlich beim Kopieren herausgenommen - man
muss ja nicht den ganzen Code zeigen
-
du mußt doch irgendwo in WinMain (oder der Fenster-Prozedur) PopFileInitialize und PopFileOpenDlg in dieser Reihenfolge hintereinander aufrufen, dann müßte man auch den Dialog sehen. Wenn du also nicht zeigst, wo der Aufruf in WinMain (oder in der Fenster-Prozedur, die die Nachrichten verarbeitet) steht, wird es schwierig, dir zu helfen...
MfG