[ Deyan_80 @ 25.05.2009. 15:21 ] @
Pozdrav svima.

Imam problem u MFC-u posle funkcije DoModal(). Evo koda:

void CDlgEx_EllipseData::EditEllipseData(CCADDoc *pDoc)
{
m_pDocument = pDoc;

if( DoModal() == IDOK )
{
for( UINT i = 0; i < m_pDocument->m_nEllipseCount; i++ )
{
CString str;
double dRadius, dStartX, dStartY, dAngle;
m_List.GetText(i, str);
sscanf(str, "%lf%lf%lf%lf", &dRadius, &dStartX, &dStartY, &dAngle);
...
}
}
}

Imam neki list box (m_List) i njega editujem bez problema (dodajem novi string, brisem izabrani itd...) ali kada odem na OK potrebno mi je da sve sto imam u listi snimim negde.

Problem nastane kada pristupam listi tj u redu "m_List.GetText(i, str);"
Inace m_pDocument->m_nEllipseCount predstavlja broj redova u listi. Desavalo mi se da program pukne tu tj kada sam preko m_List pokusavao da pristupim f-ji GetCount() tj m_List.GetCount().

Je li neko imao slicnih problema ili ima ideju kako da resim ovaj.

Unapred hvala ...
[ Mihajlo Cvetanović @ 25.05.2009. 15:46 ] @
Funkcija ClistBox::GetText preuzima tekst iz kontrole. Kad se završi funkcija DoModal kontrola je davno nestala. Ono što tebi treba je da pozoveš GetText u trenutku kad se prozor zatvara, ali kontrola je još živa. U ovom slučaju CDlgEx_EllipseData::OnOK je dobro mesto, jer tebe sadržaj edit boksa i interesuje samo kad korisnik klikne OK. String koji dobiješ treba da sačuvaš kao članicu, ili još bolje string koji dobiješ treba da isparsiraš, a promenljive dRadius, dStartX, dStartY, i dAngle da sačuvaš kao članice.
[ Deyan_80 @ 26.05.2009. 09:20 ] @
:) Hvala za OnOK(). Znao sam da je posle OK ceo dijalog unisten i da mi to pravi problem ali nisam mogao da se setim kako da ga resim.

Skroz sam zaboravio na to.

Hvala jos jednom.

[Ovu poruku je menjao Deyan_80 dana 26.05.2009. u 10:31 GMT+1]