Zeichnen im Static des TabCtrls, das wiederum in einem CFormView eingebettet ist
-
Hi,
ich habe ein Problem mit meiner CFormView, die komplett mit einem TabCtrl gefüllt ist. Das TabCtrl funktioniert soweit einwandfrei und besteht aus zwei Seiten. Die erste Seite dient dazu, Daten einzugeben, die auf der zweiten Seite visualisiert werden sollen (per GDI). Nun hatte ich zuerst damit begonnen in der CFormView und dort in der OnDraw den Code zu schreiben, um die Grafik zu zeichnen. Die Grafik soll nun aber in einem Static (IDC_WEBDIAGRAM_OUT) auf der 2. Seite des TabCtrls angezeigt werden, wenn dieses sichtbar ist. Das die OnDraw nun nicht mehr funktioniert ist klar, da ja das TabCtrl über den DC des CFormView-Fensters gezeichnet wird.
Wie muss ich nun vorgehen, um den Zeichencode im Static der 2. Seite anzuzeigen? Hier Auszüge aus dem Code:
CFormView, OnInitialUpdate (erzeugt die Seiten des TabCtrls):
// Inhalte des Tabs erzeugen CDialog* dlg; // Erzeugen und hinzufügen dlg = new COrganisationTab(); ASSERT(dlg); VERIFY(dlg->Create(IDD_ORGANISATION_TAB, &m_NaviTabCtrl)); m_TabContent.Add(dlg); dlg = new CWebDiagramTab(); ASSERT(dlg); VERIFY(dlg->Create(IDD_WEBDIAGRAM_TAB, &m_NaviTabCtrl)); m_TabContent.Add(dlg);CFormView, OnTcnSelchangeNaviTab (Wenn durch die Tabs gesschaltet wird):
// Aktuell ausgewählte Tab-ID ermitteln int tab_id = TabCtrl_GetCurSel(m_NaviTabCtrl); ASSERT(tab_id != -1); //PSEUDOCODE: Wenn das entsprechende Tab mit dem Static sichtbar, dann zeichne in dem Static. // Die Zeichnung wollte ich dann so durchführen: CWebDiagramTab* webtab = (CWebDiagramTab*) m_TabContent[1]; webtab->OnPaint();CWebDiagramTab, OnPaint():
CStatic* stat = (CStatic*) GetDlgItem(IDC_WEBDIAGRAM_OUT); ASSERT(stat); CDC* cdc = stat->GetDC(); ASSERT (cdc); cdc->LineTo(100,100); cdc->TextOut(200,200, "HUGO");Leider bekomme ich so keine Ausgabe auf dem Static (trotzdem läuft alles fehlerfrei ab!)... Für jeden Tip bin ich dankbar!
Gruß
Prog