tommy@linux
17-08-2004, 15:16
hi,
also ich habe ein kleines Problem.
Ich habe ein Baummenu geschrieben, welches sich auf der linken Seite meines Frames befindet. AUf der rechten Seite soll ein wxScrolledWindow, je nach angeclicktem item des Baumes verschieden dargestellt werden.
Im Moment probiere ich es über den Event EVT_TREE_SEL_CHANGED, also wenn sich der item geändert hat, soll sich der Inhalt der rechten seite ändern.
Das Problem liegt darin, das ich die rechte Seite über mein Frame aufrufe, der Event aber vom Baum augerufen wird. Ich kann dann nicht das aktuelle Element des Baumes aufrufen.
- - - - - - -- -
Ich hatte mir das so gedacht, geht leider nicht:
BEGIN_EVENT_TABLE(MyTreeCtrl, wxTreeCtrl)
EVT_TREE_SEL_CHANGED(Id_Ctrl, MyFrame::OnItemLeftClick)
END_EVENT_TABLE()
MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
: wxFrame((wxFrame *)NULL, -1, title, wxPoint(x, y), wxSize(w, h)),
m_treeCtrl(NULL), propertyWindow(NULL),m_lboxLog(NULL), m_logTarget(NULL)
{
....
//Create Tree
CreateTreeWithDefStyle();
propertyWindow = new PropertyWindow( this, Id_PropertyManager );
....
}
void MyFrame::OnItemLeftClick( wxMouseEvent& event )
{
wxTreeItemId item = m_treeCtrl->GetSelection();
int image = m_treeCtrl->GetItemImage(item);
if( image == MyTreeCtrl::TreeCtrlIcon_Folder )
propertyWindow->MACHE WAS
}
Hier gibt es einen SegmentationFault, da ich nicht auf m_treeCtrl zugreifen kann.
Danke für eure Hilfe.
also ich habe ein kleines Problem.
Ich habe ein Baummenu geschrieben, welches sich auf der linken Seite meines Frames befindet. AUf der rechten Seite soll ein wxScrolledWindow, je nach angeclicktem item des Baumes verschieden dargestellt werden.
Im Moment probiere ich es über den Event EVT_TREE_SEL_CHANGED, also wenn sich der item geändert hat, soll sich der Inhalt der rechten seite ändern.
Das Problem liegt darin, das ich die rechte Seite über mein Frame aufrufe, der Event aber vom Baum augerufen wird. Ich kann dann nicht das aktuelle Element des Baumes aufrufen.
- - - - - - -- -
Ich hatte mir das so gedacht, geht leider nicht:
BEGIN_EVENT_TABLE(MyTreeCtrl, wxTreeCtrl)
EVT_TREE_SEL_CHANGED(Id_Ctrl, MyFrame::OnItemLeftClick)
END_EVENT_TABLE()
MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
: wxFrame((wxFrame *)NULL, -1, title, wxPoint(x, y), wxSize(w, h)),
m_treeCtrl(NULL), propertyWindow(NULL),m_lboxLog(NULL), m_logTarget(NULL)
{
....
//Create Tree
CreateTreeWithDefStyle();
propertyWindow = new PropertyWindow( this, Id_PropertyManager );
....
}
void MyFrame::OnItemLeftClick( wxMouseEvent& event )
{
wxTreeItemId item = m_treeCtrl->GetSelection();
int image = m_treeCtrl->GetItemImage(item);
if( image == MyTreeCtrl::TreeCtrlIcon_Folder )
propertyWindow->MACHE WAS
}
Hier gibt es einen SegmentationFault, da ich nicht auf m_treeCtrl zugreifen kann.
Danke für eure Hilfe.