Hallo zusammen,
also ich hab hier ein MDI Projekt mit gesplittetem Fenster.
Ich will Abhängig von der Userauswahl im Hauptfenster Subknoten anzeigen bzw. ausblenden. Das ganze funktioniert, jedoch muß man einmal einen anderen Knoten anklicken und wieder den "Vaterknoten" anklicken damit das ganze aktualisiert wird...
Ich mache rufe die Funktion im View des hauptfenster wie folgt auf:
Dabei prüft diese Funktion die Einstellungen und erzeugt die Subknoten:
Hab schon fast überlegt zwischen zwei Knoten zu wechseln, damit die Subknoten korrekt angezeitg werden, aber das kann ja nicht die Lösung sein!
Weiß jemand Rat?
also ich hab hier ein MDI Projekt mit gesplittetem Fenster.
Ich will Abhängig von der Userauswahl im Hauptfenster Subknoten anzeigen bzw. ausblenden. Das ganze funktioniert, jedoch muß man einmal einen anderen Knoten anklicken und wieder den "Vaterknoten" anklicken damit das ganze aktualisiert wird...
Ich mache rufe die Funktion im View des hauptfenster wie folgt auf:
Code:
//...
CSplitterWnd* pWndSplitter = (CSplitterWnd*) GetParent();
if (!pWndSplitter || !::IsWindow(pWndSplitter->m_hWnd))
return;
CDriveTreeView* pDriveTreeView = (CDriveTreeView*) pWndSplitter->GetPane(0, 0);
if (pDriveTreeView && ::IsWindow(pDriveTreeView->m_hWnd))
pDriveTreeView->BuildFeedbackSubTree ();
pDriveTreeView->Invalidate ();
pDriveTreeView->RedrawWindow();
//pWndSplitter->RedrawWindow();
//...
Dabei prüft diese Funktion die Einstellungen und erzeugt die Subknoten:
Code:
void CDriveTreeView::BuildFeedbackSubTree ()
{
CDriveDoc* pDoc = GetDocument();
CString strBuffer;
RemoveSubItems(m_WizTreeStruct.hItemFeedback);
memset(&m_FeedbackTreeStruct, 0x00, sizeof(m_FeedbackTreeStruct));
if ( pDoc->m_DriveParm.nFbtype == 7 || pDoc->m_DriveParm.nFbtype == 8 || pDoc->m_DriveParm.nFbtype == 16 || pDoc->m_DriveParm.nFbtype == 17 ||
pDoc->m_DriveParm.nFbtype == 19 || pDoc->m_DriveParm.nFbtype == 21 || pDoc->m_DriveParm.nFbtype == 30) {
strBuffer.LoadString(IDS_WAKE_AND_SHAKE);
m_FeedbackTreeStruct.hItemWakeAndShake = GetTreeCtrl().InsertItem(strBuffer, IMGLIST_CAN_PDO, IMGLIST_CAN_PDO,
m_WizTreeStruct.hItemFeedback, TVI_LAST);
GetTreeCtrl().SetItemData(m_FeedbackTreeStruct.hItemWakeAndShake, ITEMDATA_WAKE_AND_SHAKE);
}
if ( true ){//pDoc->m_DriveParm.nFbtype == 10 ) {
strBuffer.LoadString(IDS_SYNCHRON_SENSORLESS);
m_FeedbackTreeStruct.hItemSynchronSensorless = GetTreeCtrl().InsertItem(strBuffer, IMGLIST_CAN_PDO, IMGLIST_CAN_PDO,
m_WizTreeStruct.hItemFeedback, TVI_LAST);
GetTreeCtrl().SetItemData(m_FeedbackTreeStruct.hItemSynchronSensorless, ITEMDATA_SYNCHRON_SENSORLESS);
}
}
Hab schon fast überlegt zwischen zwei Knoten zu wechseln, damit die Subknoten korrekt angezeitg werden, aber das kann ja nicht die Lösung sein!
Weiß jemand Rat?
Zuletzt bearbeitet: