[wxWidgets] Przypisywanie wartości kontrolek z innego okna

[wxWidgets] Przypisywanie wartości kontrolek z innego okna
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam!
mam w aplikaci 2 okna - glowne i dialog. na glownym jest wxTextCtrl przycisk, ktorego funkcja przycisniecia otwiera mi okno dialogowe, czyli:

Kopiuj
dialog dialog1(this);
dialog1.ShowModal();

I chcę zrobić tak, że jak wcisnę przycisk na oknie dialogowym to w wxTextCtrl na glownym oknie pojawi mi sie napis: "przykladowy tekst", ale nie wiem jak. Jak by był ktoś miły i mi zdradził to będę wdzięczny :)
Z góry dzięki za pomoc

06
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2440
0

Możesz na przykład tak:

Kopiuj
//po stronie okna dialogowego
if(GetParent())
{
	wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED,GetId());

	event.SetString(wxT("przykladowy tekst"));
 
	GetParent()->ProcessEvent(event); //<--- wysyłasz do właściciela.
}

Po stronie właściciela przechwytujesz wxEVT_COMMAND_BUTTON_CLICKED (makro EVT_BUTTON z id dialogu).

P.S. bardziej eleganckie byłoby, gdybyś zdefiniował własne id zdarzenia (wxEVT_xxx), no ale w tym momencie to sprawa drugorzędna.

CH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 656
0

Chyba prościej jest to zrobić po stronie okna głównego, po zamknięciu dialogu obiekt jest dalej dostępny, więc można sobie pobrać jakiś tekst wprowadzony do tegoż dialogu. Zasadniczo do takich zadań w wxWidgets jest zrobiona klasa wxValidator i jej podobne.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.