Fileopen
-
Hi
Ich möchte einen Fileopendialog anzeigen indem man ein Bild auswählen kann.
Das Bild sollte dann in einer Picturebox (IDC_STATIC) angezeigt werden.
Ich benutzer das Studio 6 (C++)Die 2. Frage ist, wie kann ich eine andere Form z.B IDD_EINSTELLUNGEN_DIALOG anzeigen, wenn ich auf einen Button klicke?
-
tach auch ,
// öffen des Open/Save Dialoges CFileDialog cfd(TRUE , "bmp" , NULL, OFN_HIDEREADONLY , "bmp files(*.bmp)|*.xml|alle Files(*.*)|*.*|" , NULL); if(cfd.DoModal() == IDOK ) { //mache was } // andere fenster aufrufen fenstername.DoModal() // wenn es ein modales fenster weren soll fenstername.Create(IDD..);// ein nicht modales fenster (bearbeitung eines anderen Fensters möglich)//mit der Picturebox habe ich mich noch nicht beschäftigt..
-
Wie kann ich denn den Pfad und die Datei aus dem Filedialog auslesen?
Kennst du noch gerade den Aufruf für den Druckerdialog???
-
Den Pfad kannst du mit GetPathName() auslesen !
Gruß
:: NoName ::
-
Das Fenster öffnen funktioniert bei mir nicht!
Ich rufe es so auf:
IDD_BAUSTELLE_DIALOG.DoModal();und erhalte immer diesen Fehler:
error C2228: Der linke Teil von '.DoModal' muss eine Klasse/Struktur/Union sein
-
addict schrieb:
Das Fenster öffnen funktioniert bei mir nicht!
Ich rufe es so auf:
IDD_BAUSTELLE_DIALOG.DoModal();und erhalte immer diesen Fehler:
error C2228: Der linke Teil von '.DoModal' muss eine Klasse/Struktur/Union seinIDD_BAUSTELLE_DIALOG ist ja die Ressourcen-Id des Dialoges, die in der IDE eine Verknüpfung zum Res-File (grafische Dialogressource) darstellt. Die kannst Du nicht mit .DoModal zur Ansicht bringen. Du musst eine Instanz Deiner Dialogfeldklasse erzeugen und diese mit .DoModal() sichbar machen. Das IDD_BAUSTELLE_DIALOG nimmst Du nur zum Verknüpfen des Menübefehls zum Öffnen des Dialogs.
-
Ok und wie mache ich diese Verknüpfung?
-
addict schrieb:
Ok und wie mache ich diese Verknüpfung?
Weiß ja nicht, wie Du den Dialog aufrufen willst. Vielleicht habe ich das vorhin auch etwas missverständlich ausgedrückt. Die IDD_BAUSTELLLE... benötigt Deine Dialogfeldklasse, um eine Verknüpfung zur Ressource herstellen zu können. In der Headerdatei zur Dialogfeldklasse taucht die IDD_BAUSTELLE.... dann in der Form
class CTestdialog : public CDialog { // Konstruktion public: CTestdialog(CWnd* pParent = NULL); // Standardkonstruktor // Dialogfelddaten //{{AFX_DATA(CTestdialog) enum { IDD = IDD_BAUSTELLE_...}; // Hier wird die Verknüpfung erstellt. // HINWEIS: Der Klassen-Assistent fügt hier Datenelemente ein //}}AFX_DATA // Überschreibungen // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen //{{AFX_VIRTUAL(CTestdialog) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung //}}AFX_VIRTUALWird das Fenster über einen Menüspunkt der Menüleiste aufgerufen dann brauchst Du in Deinem CMainFrame dann eine Funktion CMainFrame::OnFunktionsname() in der Du dann die Instanz Deiner Dialogfeldklasse erstellst und mit .DoModal() aufrufst.