Dialogbox-Problem
-
Ich habe mir eine Dialogbox gebaut. Den szFileName bekomme auch normal.
Aber aus irgeneinem Grund bleibt der titlename leer. Weiß jemand warum?
Danke im Vorrausvoid OpenFileBox(HWND hwnd,PTSTR titlename) { OPENFILENAME ofn; szFileName[0] = '\0'; titlename[0] = '\0'; ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFilter = "HTML Datei (*.html)\0*.html\0" "Text Datei (*.txt)\0*.txt\0" "Alle Dateien (*.*)\0*.*\0"; ofn.lpstrFile = szFileName; ofn.nMaxFile = MAX_PATH; ofn.Flags = OFN_HIDEREADONLY|OFN_CREATEPROMPT; ofn.lpstrDefExt = "txt"; ofn.lpstrFileTitle=titlename; if(GetOpenFileName(&ofn)) { MessageBox(hwnd,titlename,"",MB_OK); //Hier Sollter der Title ausgegeben werden HWND hEdit = GetDlgItem(hwnd, IDC_MAIN_EDIT); if(LoadText(hEdit, szFileName)) { SendDlgItemMessage(hwnd, IDC_MAIN_STATUS, SB_SETTEXT, 0, (LPARAM)"Geöffnet..."); } } }
-
Woher kommt eigentlich szFileName?! Und sind szFileName und titlename gültige BUffer, die auch groß genug sind?
-
szFileName ist ein char[MAX_PATH] und titlename ist wie man oben sieht eine PTSTR.
-
hallo
setz doch zu testzwecken am beginn deines snipsels
szFileName und titlename gleich.
das sollte möglich sein, wenn ich mich recht erinnere, und schau was dein code
dann macht.mfg f.-th.
-
Hab ich gemacht. Es geht immer noch nicht. -
Die Variable die hinter ofn.lpstrFile ist gefüllt während die, die hinter andere ofn.lpstrFileTitle steht leer ist.
-
Mit ofn.nMaxFileTitle kannst/musst du angeben, wieviele Zeichen maximal, einschließlich der abschließenden '\0', in den ofn.lpstrFileTitle-Puffer kopiert werden dürfen. Mit anderen Worten, wie groß der Puffer ist, auf den ofn.lpstrFileTitle zeigt. Der Wert ist in deinem Beispiel scheint's 0.
Walter
-
Jetzt geht es vielen dank.