[wxWidgets] Przypisywanie wartości kontrolek z innego okna

0

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

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

0

Możesz na przykład tak:

//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.

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.

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