Listbox: Anzeigen von Dateinamen mit verstecktem Pfad im Hintergrund.

Zeller

Mitglied
Hallöchen

Ich suche eine Möglichkeit, um durch Doppelklick Dateien Aus einer ListBox zu öffnen.
Dazu benötige ich ja den gesammten Pfad der Datei in meiner ListBox.
Ich möchte aber, dass nur der Dateiname selbst angezeigt wird.
Kann man den Pfad irgendwie unsichtbar anhängen oder so?

Schon jetzt vielen Dank für eure Unterstützung!
 
Es gibt bei praktisch allen Controls ein ItemData. Das ist ein Wert, der gerade gross genug ist, einen Pointer zu fassen. Damit könntest du bei jedem Item einen Pointer auf ein Struct oder String oder wasauchimmer setzen, und da drin deinen kompletten Pfad packen.

Alternativ kannst du ja eine std::map<std::string,std::string> benutzen, wo vorne der Dateiname und hinten der komplette Pfad reinkommt. Da könntest du dann den kompletten Pfad anhand des selektierten Items raussuchen.
 
Ja äähm?

Tönt gut, doch ich schnall das noch nicht ganz. Bin vorallem an der Alternativ Variante interessiert.
Wie funktioniert das genau?
 
Du definierst dir eine std::map<std::string,std::string>.
Benötigt die STL header <string> und <map> und einen nicht komplett verblödeten Compiler.

Vorne packst du deinen Filenamen ohne Pfad rein, hinten deinen kompletten Pfad.

Code:
std::map<std::string,std::string>    mapWurzel;

// Einsetzen
mapWurzel["MeinSpiel.exe"] = "c:\\programme\\hier\\dort\\MeinSpiel.exe";

// suchen
std::string    strSelektiertesItem = "MeinSpiel.exe";

std::map<std::string,std::string>::iterator  it( mapWurzel.find( strSelektiertesItem ) );
if ( it != mapWurzel.end() )
{
  // den Eintrag gibt es
  std::string   strMeinPfad = it->second;

  // jetzt mit strMeinPfad die Welt erobern
}
 
Danke schön!!

Ich konnt mein Problem Mittels subitems der listbox lösen.;)

Bekomme nun jedoch den Index des gedblklickten Items nich raus.

Kannst du mir da helfen?
 
Zurück