Page 1 of 1

wxDC и рисование

Posted: Mon Jul 11, 2011 3:40 pm
by kiricheikov
Здравствуйте

Я новичок в виджете, знаком с ним вторую неделю, возникла небольшая заморочка:
вообще пишу программу по постройке графиков функции, создал интерфейс, при нажатии на кнопку оно считывает функцию и передает на процедурку, которая возвращает массив координат. Теперь мне по этим координатам надо построить график. НО! Оно хочет чтобы я подключил ивент пейнт, тоесть мне надо как-то засунуть в функцию по оброботке ивента еще 1 ивент, который будет срабатывать в какой-то момент, как это сделать я не знаю.. Запутанно объяснил, вот еще код дам:

Code: Select all

void MyFrame::OnButtonBuild(wxCommandEvent& event)
{
string func;
int minX,minY,maxX,maxY;
minX=wxAtoi(m_textCtrl14->GetValue());
maxX=wxAtoi(m_textCtrl15->GetValue());
minY=wxAtoi(m_textCtrl16->GetValue());
maxY=wxAtoi(m_textCtrl17->GetValue());
func=string(m_textCtrl13->GetValue());
CParser <double> cp(func,minX,maxX,minY,maxY);
cp.Build();//тут 2 массива создаются
wxPaintDC dc(this);
drawPane->graph(cp,dc); // тут должен рисоваться график, drawPane- наследный класс от wxPanel
}
На данный момент при нажатии на кнопку оно выдает wxPaintDC may be created only in evt_paint handler

MCVS 2008 C++

Re: wxDC и рисование

Posted: Tue Jul 12, 2011 4:13 am
by borr_1
У формы есть событие EVT_PAINT рисовать нужно по нему/в нем. Смотри пример в samples/drawing

Re: wxDC и рисование

Posted: Tue Jul 12, 2011 9:21 am
by kiricheikov
да, но как связать evt_paint и evt_button, в котором я сейчас собственно и нахожусь?

Re: wxDC и рисование

Posted: Tue Jul 12, 2011 9:48 am
by borr_1
добавь глобальную переменную bool в приват по кнопке делай ее тру. а в пейнт проверяй если тру рисуй что там тебе надо. как-то так

Re: wxDC и рисование

Posted: Tue Jul 12, 2011 2:02 pm
by kiricheikov
почти разобрался, теперь возникла такая проблема, у меня 2 ивента пейнт, 1 рисует сетку координат, второй график. Когда я жму построить график, насколько я понимаю, сетка перекрывает график, можно ли как-то сделать сетку прозрачной? ну или как-то на бэкграунд её, даже не знаю..

Re: wxDC и рисование

Posted: Wed Jul 13, 2011 11:34 am
by borr_1
2 ивента пейнт, 1 рисует сетку координат, второй график
Это как? А сразу и график и сетку рисовать нельзя?

Re: wxDC и рисование

Posted: Wed Jul 13, 2011 12:24 pm
by SteelRat
Простейший пример отрисовки http://wiki.wxwidgets.org/WxDC
После обновления данных графика вызывай Refresh

Re: wxDC и рисование

Posted: Thu Jul 14, 2011 9:46 am
by kiricheikov
да, проблема была именно в 2 ивентах, когда засунул в 1 то стало норм=)) правда при точности в 0,001 тупит малеха, но то такое=) Всем спс

Re: wxDC и рисование

Posted: Mon Apr 30, 2012 8:49 am
by Qens
Можно было проще сделать....вызывать не wxPaintDC, а wxClientDC http://docs.wxwidgets.org/stable/wx_wxc ... wxclientdc