CSplitterWnd und Zeiger auf die verschiedenen Views
-
Hallo ich habe ein Problem,
ich habe mit dem Visual Studio 6 folgende Anwendung erstellt:
SDI mit CSplitterWndnun versuche ich mit einem ToolBar Button in die verschiedenen Views zu schreiben:
Diesen Code habe in der der Doc-Klasse eingfügt.
Code:// ToolBar Button "Stop" void CMCheckDoc::OnTbStop() { // TODO: Code für Befehlsbehandlungsroutine hier einfügen testa(); } //*********************************************************************************** void CMCheckDoc::test() { // Linkes Fenster CMCheckView* pwndCheckView =(CMCheckView*)((CMainFrame*)(AfxGetMainWnd()->SetFocus())); pwndCheckView->SetActiveWindow(); pwndCheckView->GetListCtrl().InsertItem(1,"hallo"); } void CMCheckDoc::testa() { // Rechtes Fenster CMCheckKonto* pwndCheckKonto =(CMCheckKonto*)((CMainFrame*)(AfxGetMainWnd()->SetFocus())); pwndCheckKonto->SetActiveWindow(); pwndCheckKonto->GetListCtrl().InsertItem(1,"na geht doch"); } //***********************************************************************************Ich versuche mit den Funktionen "test"(diese Funktion wird von einem anderen Button aufgerufen) und "testa" jeweils die Views als Aktive-Fenster zu schalten damit der Code in das jeweilige List Control geschrieben wird.
Leider wird der Code immer nur in das Fenster geschrieben welches als letztes mit der Maus angeklickt wurde. Wie kann ich die Fenster mittels Zeiger aktivieren bzw umschalten damit das andere View als Aktives Fenster geschaltet wird?Ich hoffe ich habe mich verständlich ausgedrückt.
Vielen Dank für eure Hilfe.Mfg Anlen
-
Was soll das denn bitte sein?
Willst du den CWnd einer View des Splitters bekommen?
Als 1. mal die View:
CMCheckView* pView = (CMCheckView*)(((CMainFrame*)AfxGetMainWnd()))->GetActiveView());So in der legst du am besten mal nen Getter für dein Splitter Wnd an
Den nennst du bsw. GetSplitterWnd ...CWnd* pMySplitterPart1Wnd = pView->GetSplitterWnd()->GetPane(0, 0);Referenzen:
CSplitterWnd::GetPane
-
Bleibt zudem die Frage warum Du in dieser Form die Views ermittelst. Du kannst die Views mit GetFirstViewPosition/GetNextView ganz einfach enumerieren.
Der Typ der Views sollte übrigens Deinen Doc egal sein. Eine Abhängigkeit des Docs vom View würde ich vermeiden!
-
Danke ihr beiden,
hab es mit eurer Hilfe hingekriegt.
Mfg
Anlen