[wxWidgets]sprawdzanie co zostało wybrane w ListBox

0

Jak spreawdzić co jest zaznaczone w listBox?

0

wxControlWithItems::GetSelection()

0

To np. mam taki List Box:

wxArrayString arrayStringFor_WxListBox1;
WxListBox1 = new wxListBox(this, ID_WXLISTBOX1, wxPoint(113,101), wxSize(121,97), arrayStringFor_WxListBox1, wxLB_SINGLE);
WxListBox1->Append(wxT("jeden ;)"));
WxListBox1->Append(wxT("dwa :D"));
WxListBox1->Append(wxT("trzy :P"));

jak powinienem uzyt tej funkcji?

0

Na przykład tak, jeżeli kontrolka pozwala na wybranie tylko jednego elementu i ma jeden domyślnie zaznaczony:

wxMessageBox("Wybrano: "+WxListBox1->GetStringSelection()+" na pozycji "+WxListBox1->GetSelection());
0

Coś mi nie wychodzi:

void ChooseUser()
{
     wxString selectedUser = CMainFrame::userList->GetStringSelection();
}

Co jest grane?

0

Nie wiem dlaczego do userList odwołujesz się operatorem :: . Ale ostatecznie to nie jest błąd, jeżeli ta lista jest statyczna. W tym co napisałem jest jakiś problem z konwersjami, więc poniżyj sprawdzony kod. Akcja sie dzieje po naciśnięciu buttona, jest sprawdzany wybór w listbox i pokazany komunkiat.

void listboxFrm::WxButton1Click(wxCommandEvent& event)
{
	// insert your code here
	wxString s="Wybrano: ";
    s<<WxListBox1->GetStringSelection();
    s<<" na pozycji ";
    s<<WxListBox1->GetSelection();
	wxMessageBox(s);
}
0

No tak, ale ja chcę, żeby moja funkcja działała.
Co jest grane?
Jest ona poza klasą CMainFrame.

0

a to napisał kompilator:

E:\Documents and Settings\Konrad_2\Moje dokumenty\Bad Worm\Menadżer haseł\src\Broadway\main.h In function `void ChooseUser()': 

55 E:\Documents and Settings\Konrad_2\Moje dokumenty\Bad Worm\Menadżer haseł\src\Broadway\main.h invalid use of non-static data member `CMainFrame::userList' 

67 E:\Documents and Settings\Konrad_2\Moje dokumenty\Bad Worm\Menadżer haseł\src\Broadway\main.cpp from this location 

67 E:\Documents and Settings\Konrad_2\Moje dokumenty\Bad Worm\Menadżer haseł\src\Broadway\main.cpp [Warning] unused variable 'selectedUser' 

 E:\Documents and Settings\Konrad_2\Moje dokumenty\Bad Worm\Menadżer haseł\src\Broadway\Makefile.win [Build Error]  [main.obj] Error 1 
0

Jest ona poza klasą CMainFrame.

No to zrób ją częścią klasy CMainFrame.

0

Ale po co, mi się wydaje, że tak będzie lepiej.

0

A dlaczego lepiej? :>

0

Jak będzie poza klasą, to w funkcji musisz mieć wskaźnik na klasę okna. Lepiej zrobić tą funkcję w klasie okna. W moim przykładzie jest to funkcja obsługująca zdarzenie guzika. Poza tym jak jest poza klasą, to jak ją wywołasz? Zwykle używa się do tego zdarzenia okna, które ma obsługę w klasie okna. Dlatego uważam, że nie bedzie lepiej, jak funkcja będzie poza klasą.

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