헤더에서 기능에 연결 : 내가 가지고 클래스를 testfunction하고 내가 내 메인 창에 Textcontrol를 만들 수있는 클래스를 원하는 패널wxWidgets에 멤버 클래스
class testsubclass{
public:
testsubclass();
void testfunc(wxCommandEvent &event);
};
class panelonwindow : public wxPanel{
public:
panelonwindow(wxWindow *windowid, int ID);
wxWindow *mywindow, *mypanel;
wxTextCtrl *mytextcontrol;
void maketextctrl(std::string label, int &id);
}
와 함께.
wxWindow *mainwindow;
testsubclass *mysubclass;
panelonwindow *testpanel;
int ID1 = 100;
int ID2 = 101;
지금의 주요 기능은 다음과 같습니다 :
헤더 :
mainwindow = this;
std::string textcontrolstring = "this is a test";
testpanel = new panelonwindow(mainwindow, ID);
testpanel->maketextctrl(textcontrolstring, ID2);
mysubclass = new testsubclass();
기능으로 나는
testsubclass::testsubclass(){
}
panelonwindow::panelonwindow(wxWindow *windowid, int ID)
:wxPanel(windowid, ID, wxDefaultPosition, wxSize(150, 150)){
mywindow = windowid;
mypanel = this;
};
void panelonwindow::maketextctrl(std::string label, int &id){
wxString newlabel(label.c_str(), wxConvUTF8);
mytextcontrol = new wxTextCtrl(mypanel, id, newlabel, wxDefaultPosition, wxSize(130, 30));
}
void testsubclass::testfunc(wxCommandEvent &event){
printf("%s\n", "testfunc was called");
}
내 메인 창 헤더 파일 포인터에 두 가지 클래스가 포함되어 사용
문제는 testsublass 함수 testfunc를 다음과 같은 이벤트에 연결할 수 없다는 것입니다.
Connect(ID2, wxEVT_COMMAND_TEXT_UPDATED,
wxCommandEventHandler(mysubclass->testfunc));
내가 panelonwindow 기능의 다른 회원에게 보이드 panelonwindow 내 :: maketextctrl에서 이벤트에 링크 할 수 있습니다 (제공 I : 나는 이런 식으로 뭔가를 할 때 메인 윈도우 기능, 나는 몇 가지 비밀 컴파일러 메시지를 얻을 무효 panelonwindow :: testfunc 같은 방식으로 그들을 선언 (wxCommandEvent & 이벤트)
void panelonwindow::maketextctrl(std::string label, int &id){
wxString newlabel(label.c_str(), wxConvUTF8);
mytextcontrol = new wxTextCtrl(mypanel, id, newlabel, wxDefaultPosition, wxSize(130, 30));
Connect(id, wxEVT_COMMAND_TEXT_UPDATED,
CommandEventHandler(panelonwindow::testfunc))
}
내가 패널의 버튼을 많이 만들 계획 때문에, 내가 멤버 클래스에서 함수를 정의 선호보다는 함수를 작성합니다 모든 윈도우를 제어하는 각 버튼/텍스트 제어 윈도우를 분리합니다.
그것은 안돼서 질문의 비트 수 있습니다,하지만 난 도움이 모든 종류의 감사하겠습니다
당신은 이벤트를 생성하는 객체에Connect()
를 호출하는 방법과 다른 wxWidgets에는 것입니다 (그것을 처리하는 그것을 객체를 전달해야