Komunikacja okien dialogowych (SDI Visual Studio)

0

Mam problem z komunikacją między oknami.

Główne okno dialogowe jest obiektem klasy CMainFrame. Z menu wybiera sie odpowiednia opcję która otwiera nowe okno dialogowe ktore jest obiektem klasy DodawanieWektorow.
Wszystko co powyzej dziala bez zarzutu. W oknie DodawanieWektorow wpisuje dane do pojedynczego wektora a potem chcę ten wektor przeslac do glownego okna CMainFrame. I tu pojawia się problem

W CMainFrame znajduje się baza wprowadzonych wektorow. Nie potrafię przekazać obiektu wektora do glownego okna.
W klasie DodawanieWektorow dodałem wskaznik na CMainFrame czyli:

CMainFrame * tata;

Potem dodałem funkcję :

 
void DodawanieWektorow::GdzieTata(CMainFrame*t)
{
	tata=t;
}

I wywołałem okno :

 
void CMainFrame::OnWektoryBazawektorow()
{
	Baza.GdzieTata(this);
	Baza.DoModal();
}

Mimo że mam już wskaźnik na CMainFrame w obiekcie DodawanieWektorow nie moge wywołać funkcji:

 
CString m_Txt=tata->PodajBaze();
//nie moge wywołać ŻADNEJ funkcji klasy CMainFrame.   
// Tutaj PodajBaze() jest funkcja zwracającą CString

Co tu można poprawić? Może jest inny sposob na komunikację między oknami? Proszę o pomoc bo przez to nie moge kontynuowac pracy nad projektem

0

Nie możesz wywołać, żadnej funkcji bo co? Tzn. jaki pojawia się błąd?
Skoro otwierasz to okno jako modalne to możesz też w OnWektoryBazawektorow za Baza.DoModal(); wyciągnąć po prostu informację z tego okna. np. coś_tam = Baza.co_tam_masz.

Przy okazji: nazwy obiektów zaczynaj raczej od małej litery. Przy tego typu tematach na forum zawsze pisz w czym piszesz. W tym wypadku wygląda mi to na MFC i pewnie tak jest, ale wypadałoby takie info umieścić w poście.

0
 
1>d:\buda\materialy 2 semestr\programowanie obiektowe l\programy\lab nr 8 v1 - kopia\lab nr 7 v2\dodajwektor.cpp(145): error C2027: use of undefined type 'CMainFrame'
1>          d:\buda\materialy 2 semestr\programowanie obiektowe l\programy\lab nr 8 v1 - kopia\lab nr 7 v2\dodajwektor.h(4) : see declaration of 'CMainFrame'
1>d:\buda\materialy 2 semestr\programowanie obiektowe l\programy\lab nr 8 v1 - kopia\lab nr 7 v2\dodajwektor.cpp(145): error C2227: left of '->PodajBaze' must point to class/struct/union/generic type

Wkleję linijki z tymi bledami według kolejnosci:

 
m_Txt=tata->PodajBaze();
//
//
//
class CMainFrame; //piszę to przed dodaniem publicznego wskaznika. Dzieki temu wiadomo ze CMainFrame jest klasa ktora jeszcze sie nie zostala rozczytana w programie
//
//
//
//
m_Txt=tata->PodajBaze();//ta sama linijka co wyzej
1

Do pliku dodajwektor.cpp dodaj #include "CMainFrame.h" czy jak ten plik się u Ciebie nazywa.

0

Działa! :D
Ogromne dzieki za szybka pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1