Forum: PC-Programmierung Datei-Browser in C++


von Sebastian (Gast)


Lesenswert?

Hallo,

für meinen FPGA Pulsgenerator habe ich eine GUI geschrieben in der ich
Pulsformen, hinterlegt in *.txt-Files, auf den FPGA laden kann. Um
diese Text-Files zu öffnen, muss man den Pfad manuell in ein
Eingabefeld schreiben.
Am liebsten hätte ich einen Dateibrowser, wie in jeder modernen GUI
vorhanden. Gibt es dafür schon vorgefertigte Klassen? Wäre super wenn
ihr mir da Tipps geben könnt.

Vielen Dank,
Sebastian

von André K. (freakazoid)


Lesenswert?

Betriebssystem? Entwicklungsumgebung?

Für Windows, VisualStudio (MFCs): CFileDialog

Grüße,
Freakazoid

von Sebastian (Gast)


Lesenswert?

Sorry,

für Windows. Visual Studio C++.

von Karl H. (kbuchegg)


Lesenswert?

Wie andre schon sagte:
CFileDialog
Die Doku in der MSDN ist mehr als ausreichend, und der
Dialog ist einfach einzusetzen:

Das einzig interessante ist, wie kann man sich das zuletzt
benutzte Verzeichnis in der Registry merken und dem
DIalog wieder vorgeben (nichts ist lästiger, als wenn man
ständig das Verzeichnis wieder suchen muss).

zb.

  CFileDialog Dlg( TRUE, "rgt", "",
                   OFN_HIDEREADONLY | OFN_FILEMUSTEXIST,
                   "Regatta (*.rgt)|*.rgt|",
                   AfxGetMainWnd() );

  CString InitialDir = GetProfileString( "App", "LastDir", "" );
  Dlg.m_ofn.lpstrInitialDir = InitialDir;

  if( Dlg.DoModal() == IDOK ) {

    TCHAR PathName[_MAX_PATH];
    strncpy( PathName, Dlg.GetPathName(), Dlg.m_ofn.nFileOffset );
    PathName[Dlg.m_ofn.nFileOffset] = '\0';

    WriteProfileString( "App", "LastDir", PathName );

    String CompleteFileName = Dlg.GetPathName();

    ....

von Sebastian (Gast)


Lesenswert?

Danke,

werde ich heute Abend gleich mal ausprobieren.

Sebastian

von Sebastian (Gast)


Lesenswert?

Hallo,

echt super wie das funktioniert. Ich muss ja schon sagen ich bin alles
andere als ein Windowsprogrammierer. Trotzdem wird mit so einem
Schnick-Schnack die GUI richtig professionell :-).

Danke auf jeden Fall,
Sebastian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.