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 Vorraus

    void 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.


Anmelden zum Antworten