redraw Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
anton_dm
Knows some wx things
Knows some wx things
Posts: 25
Joined: Tue Jan 26, 2010 4:08 am

redraw

Post by anton_dm »

В общем не знаю как обозвать эту темку.
Есть кнопка на панельке. Жмем ее. По нажатии начинаются вычисления. Нужно чтобы в процессе вычисления через определенное число операций выводился статус текущего положения вещей.

Code: Select all

void CMFrame::OnContinueEvaluateSRKV( wxMouseEvent& event )
{
	//gal_int gal(p,0);
	//residue_g(gal,tetta,d,p);
	//gal = K_sub(gal,d);
	//return get_srkv(gal,d);

	if(0){
	
	}else{
		objstgal obj;
		vector<objstgal> vobj;
		fstream out;
		out.open("galua",ios::out);
		gal_int prm = print_prime(1000000);
		TVInt f;
		int count = 1;
		m_textCtrl3->SetValue(wxT("текущее простое"));
		for(gal_int::iterator it = prm.begin(); it != prm.end(); it++){
			obj.p = (*it);
			obj.d = factor((*it)-1,f);
			obj.tet = primitive(f,(*it));
			f.clear();
			vobj.push_back(obj);
			count++;
			if(count%100==0){
	m_textCtrl3->SetValue(wxString::Format(wxT("%d"),obj.p));
			}
		}
		typedef vector<objstgal>::iterator vobjit;
		for(vobjit it = vobj.begin();it != vobj.end(); it++){
			Write(out,(*it));
		}
	}
	event.Skip();
}
Ну и короче вот это

Code: Select all

m_textCtrl3->SetValue(wxString::Format(wxT("%d"),obj.p));
Должно отображать в окошке статус. Но короче как я понял нужно сделать редрав всего окна чтобы оно отобразилось. Или что нужно сделать? А вообще я думаю может потоком отдельным запускать? Или может наследовать клас от wxObject?
В общем подскажите пожалуйста.
Nikolay
Experienced Solver
Experienced Solver
Posts: 72
Joined: Wed Oct 10, 2007 4:27 am

Post by Nikolay »

Привет

Точно не скажу, такого не делал. Но я бы для начала попробовал Update\Refresh + wxGetApp().Yield \ wxSafeYield
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
private_joker
Earned a small fee
Earned a small fee
Posts: 12
Joined: Tue Nov 24, 2009 6:26 pm

Re: redraw

Post by private_joker »

anton_dm wrote:В общем не знаю как обозвать эту темку.
Есть кнопка на панельке. Жмем ее. По нажатии начинаются вычисления. Нужно чтобы в процессе вычисления через определенное число операций выводился статус текущего положения вещей.

**Skipped**

Должно отображать в окошке статус. Но короче как я понял нужно сделать редрав всего окна чтобы оно отобразилось. Или что нужно сделать? А вообще я думаю может потоком отдельным запускать? Или может наследовать клас от wxObject?
В общем подскажите пожалуйста.
imo вычисления, сокеты, длительные файловые операции - wxThread. Все остальное для таких вещей - "per rectal" методы.
Поиск: wxThread, Custom Events, AddPendingEvent
Хорошо бы прочитать один раз книжку "Cross-Platform GUI Programming with wxWidgets".