BOOT Geschrieben 13. Januar 2006 Geschrieben 13. Januar 2006 Kann vieleich jemand mir bei diesem Problem mir helfen! 1.Ich habe ein TabCtrl mit MFC erstellt 2.Dann habe ich ein Dialog mit Classenname CSeite1 "Untergeornet und Kein Rand" erstellt. 3.Zu diese Dialog habe ich die Streuerelementten wie List, Button, Edit, etc.. eingefügt und für die Membervariablen definiert 4.Dann das gleiche noch ein mal für zweite Dialog mit Classenname CSeite2 erstellt. Alles in jeder Dialog funktioniert einwandfrei bis zu einem: Problem: Ich möchte von CSeite1 aus eine Funktion eine CStringswert in ein Editfeld in CSeite2 hinein schreiben das heißt mit Button Select in CSeite1 Lese ich aus der Listenelemen der CSeite1 und Übergebe ich in CSeite2 in ein CEditelemet. //In diese Methode soll Stringswert an der Editfeld der CSeite2 übergeben werden und dort in der Feld erscheinen. void CSeite1::OnSelectbutton() { UpdateData(TRUE); int nSelected; CString liste; CString list2; POSITION p = m_cListCtrl.GetFirstSelectedItemPosition(); if(p) { int i; while (p) { nSelected = m_cListCtrl.GetNextSelectedItem(p); if(m_Radio1.GetCheck()) { liste = m_cListCtrl.GetItemText(nSelected,0); } else { liste = m_cListCtrl.GetItemText(nSelected,2); } list2 = list2 + liste; } m_sResults = list2; } else { MessageBox("Keine Element ausgewählt!","Warning!",MB_OK); } UpdateData(FALSE); } //In CSeite2 header class CSeite2 : public CDialog { // Konstruktion public: CSeite2(CWnd* pParent = NULL); // Standardkonstruktor // Dialogfelddaten //{{AFX_DATA(CSeite2) enum { IDD = IDD_SEITE2 }; CString m_Test; CMSFlexGrid m_ctlFGrid; //}}AFX_DATA // Überschreibungen // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen //{{AFX_VIRTUAL(CSeite2) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung //}}AFX_VIRTUAL // Implementierung public: void vorher(); CString m_csinliste; void SetDataMsflexgrid(CString cs_Data, int i_spalte, int i_zeile); void GetData(CString cs_Data, int i_spalte, int i_zeile); int m_iMouseCol; int GenID(int m_iRow, int m_iCol); void DoSort(); CString RandomStringValue(int m_iColumn); void LoadData(); HICON m_hIcon; protected: // Generierte Nachrichtenzuordnungsfunktionen //{{AFX_MSG(CSeite2) afx_msg void OnButton1(); afx_msg void OnPaint(); virtual BOOL OnInitDialog(); afx_msg void OnMouseDownMsflexgrid(short Button, short Shift, long x, long y); afx_msg void OnEnterCellMsflexgrid(); afx_msg void OnCancelMode(); DECLARE_EVENTSINK_MAP() //}}AFX_MSG public: CString m_csEmpfang; afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); DECLARE_MESSAGE_MAP() private: int m_iZeile; int m_iSpalte; CString m_csData; }; Zitieren
Schnitzelfritz Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 Der Parent deiner Tabseiten kennt doch deine Dialogseiten (CSeite1 und CSeite2). Du kannst folgendes machen: In CSeite1 baust du deinen String zusammen und übergibst ihn in etwa so an CSeite2: (([NameDerParentKlasse]*)GetParent()) -> m_seite2.SetzeMeinenString(m_sResults) Zitieren
BOOT Geschrieben 23. Januar 2006 Autor Geschrieben 23. Januar 2006 Der Parent deiner Tabseiten kennt doch deine Dialogseiten (CSeite1 und CSeite2). Du kannst folgendes machen: In CSeite1 baust du deinen String zusammen und übergibst ihn in etwa so an CSeite2: (([NameDerParentKlasse]*)GetParent()) -> m_seite2.SetzeMeinenString(m_sResults) Hallo Es funkioniert einwandfrei;) Ich danke dir! etzt habe ich eine andere Frage: Ich habe in mein CSeite2 ein MSFLEXGRID "Tabelle" mit fixer Zeile und und Spalte i Form änliche Exceltabelle. Ich habe ein Button auf diese Seite, wenn ich darauf klick öffnet ein SAVE Dialaog, dort kann ich die name ein geben und Spechern! Das Problem: Ich weiß nicht wie ich meine MSFLEXGRID als eine Exceltabelle Speichern kann? Bitte um Tip:confused: lg. BOOT Zitieren
Schnitzelfritz Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 Hm, beim direkten Speichern als Excel-Sheet bin ich jetzt auch überfragt, aber du könntest evtl. auch ein CSV-File erstellen. Excel kann das Lesen. Ich kenne leider die Möglichkeiten des MSFLEXGRID nicht. Vielleicht unterstützt es Speichern als Excel-Sheet schon. Sorry, kann dir da nicht direkt weiterhelfen Zitieren
tuxfriend Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 Hallo, es gibt zwei Möglichkeiten, eine Excel Datei durch ein externes Programm zu bearbeiten: Zunächst einmal wäre da das Component Object Model, eine sprachunabhängige Schnittstelle für Winows basierte Programme Alle Microsoft Programme bieten COM Objekte, mit denen du arbeiten könntest. Bemühe mal google und msdn.com mit Begriffen wie COM, C++, Excel, Automation, ... Ausserdem gäbe es da noch die Möglichkeit über SQL. Kein Witz: du kannst im Windows ODBC Manager eine User DSN für Excel Dateien anlegen. Das eignet sich aber eher für den Zugriff auf bestehende Dateien. Ich denke COM ist für dich das Mittel der Wahl. Die MFC bietet soweit ich weiß auch C++ Kapselungen der COM Klassen. so mußt du dich nicht erst wissenschaftlich damit beschäftigen. Hoffe das hilft. Gruß Nils Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.