Openfile Dialog
-
Hallo liebe C++ Gemeinde
ich suche einen Weg in einem leeren Win32-Konsolen Projekt an den OpenFileDialog ran zu kommen.
Mein bisheriger Versuch#include <iostream> using namespace std; int main(void) { Stream^ myStream; OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog; openFileDialog1->InitialDirectory = "c:\\"; openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; openFileDialog1->FilterIndex = 2; openFileDialog1->RestoreDirectory = true; if ( openFileDialog1->ShowDialog() == ::DialogResult::OK ) { if ( (myStream = openFileDialog1->OpenFile()) != nullptr ) { // Insert code to read the stream here. myStream->Close(); } } return 0; }
scheitert weil Stream nicht bekannt ist.
Code stammt von http://msdn.microsoft.com/de-de/library/system.windows.forms.openfiledialog(v=vs.80).aspx
Ich kenne das von Visual Basic, da kann man sich ganz einfach einen OpenFileDialog hin zaubern. Geht das hier überhaupt, was muss ich da noch an Heades einbinden oder ist meine Herangehensweise doch etwas blauäugig?
Ich habe im Netz gesehen das es noch einen Weg über die Windows API gibt, der schien mir aber zu aufwendig.
Wir benutzen Visual Studio 2008 .Net Farmework 3.5SP1.Schon mal herzlichen Dank fürs drüber nachdenken!
Magier
-
Womit willst du denn eigentlich arbeiten? C++/CLI oder reines C++ mit WinAPI-Anbindung?
-
Es soll in ANSI C++ oder fast Ansi geschrieben werden. Also der Rest läuft über die Konsole....
cout << "Hallo Welt!\n";
In dem Projekt sollen Daten aus einer Datei gelesen werden und ich dachte das es viel einfacher wäre wenn man die Datei über einen Dialog auswählen könnte.
-
Wenn das so ist, hast du deinen Beispielcode im falschen Teil der MSDN gesucht - diese Dialogklasse ist aus dem .NET-Framework (C++/CLI). Aus der MFC könntest du die CFileDialog verwenden, afaik lässt sich sowas auch mit WinAPI-Calls erreichen.
(mit reinem C++ gibt es keine Dialoge, da könntest du höchstens den Dateinamen per cin einlesen)
-
Oki danke.... mache mich da schlau!!!
-
Opening a File - Using Common Dialog Boxes
hwndOwner einfach auf 0 setzen.