Przsyłanie zmiennych między dialogami.

Odpowiedz Nowy wątek
2006-08-11 20:35
zaba
0

Witam!
Po przeczytaniu pewnego tutorialu n.t. visuala c++ postanowiłem sie zabawic- pocwiczyc.
Zrobiłem jak trzeba. Pozwólcie, że napiszę krok po kroku.
-A WIĘC: Najpierw stworzyłem nowy projekt, czyli głowny podstawowy i zarazem pierwszy dialog.
Następnie kliknąłem (tak jak kazali) w resources na folder dialog, dodałem nowe okno (dialog) poprzez opcje DIALOG INSERT.
Kliknalem prawym na ten nowy dialog i stworzylem klase nazywając ją COkienkoDlg. Jednak zeby ten pierwszy dialog mógł "porozumieć" się, albo też odnaleźć ten nowy, musiałem w zakładce "ClassView" dla (glownego) CGlownyDlg dodać "member variable" i w polu 'type' wpisałem COkienkoDlg, natomiast w 'name'- okienko.

Teraz: powiedzmy, że w okienku głownym mam zmienną "zmienna", a w okienku stworzonym prezd chwilą "zmienna2".

Z tutoriala dowiedziałem się, jak czerpać dane dla okienka pierwszego z okienka tego stworzonego później: (przykladowo) 'zmienna=okienko.ZmIeNnA'.

Nie wiem jednak jak się robi odwrotnie...-i to jest właśnie pytanie z tematu.

Powiedzmy, że program się rozpoczyna, włączamy. Działa on sobie w okienku głównym, nagle potrzebujemy wejść poprzez okienko.DoModal() do dialogu "okienko". Tam robimy zmiane w zmiennej "zmienna2". Wyłączamy okienko poprzez przycisk "quit" -> odpala się funkcja OnOK() i okienko dialogowe "okienko" znika. Teraz jesteśmy z powrotem w głownym pierwszym podstawowym oknie. Mamy naszą zmienną "zmienna", która ma przybrać wartość zmiennej "zmienna2" z zamkniętego już okienka "okienko" :-)
Jak to zrobić ?
Jakieś wsparcie dla noba :P

Proszę o szybką odpowiedź. Z gory thx.

Pozostało 580 znaków

2006-08-11 20:48
zaba
0

Pytanie brzmi, czy operacja "zmienna=okienko.zmienna2" będzie działać ?
Nawet jeśli będzie, to w jaki sposób rozwiązać problem 'chwili' tej operacji. Bo Chciałbym, aby zaraz po zamknięciu tego małego dodatkowego okienka dialogowego "okienko" taka operacja nastąpiła i nastąpiły zmiany. Czy macie jakieś rozwiązanie ?
Próbowałem na wiele sposobów, przykładowo:

zmienilismy zmienną "zmienna2" w "okienku" i chcemy powrócić do głównego okna, więc klikamy przycisk [WRÓĆ] z funkcją OnOK() :

void Cokienko::OnWroc() 
{

OnOK();
zmienna=okienko.zmienna;

}

Pozostało 580 znaków

2006-08-11 21:39
0

Może przyda ci się ShowModal i ModalResult, poszukaj pod tymi hasłami.

Pozostało 580 znaków

2006-08-12 00:25
zaba
0

Dochodzę do pewnych wniosków i stwierdzam, że: chciałbym, aby po zamknięciu okna dialogowego to, okno, co sie pojawia, czyli te główne okno dialogowe programu po prostu zmieniło wartość jakiejś zmiennej.
Zamykam jakis dialog i w dialogu "xyz" zmienna "liczba" zmienia wartość przykladowo z 1 na 2.
Jaką funkcją to zrobić.
Czy jest taka opcja, jak "on window focus" albo "on window active", zeby po prostu jakas operacja sie wykonała po pojawieniu sie okna ?

Pozostało 580 znaków

2006-08-12 13:40
zaba
0

Problem rozwiązany:

if (soft.DoModal( ) == IDOK)
{
//instrukcje

}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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