<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Zeichnen im Static des TabCtrls, das wiederum in einem CFormView eingebettet ist]]></title><description><![CDATA[<p>Hi,</p>
<p>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.</p>
<p>Wie muss ich nun vorgehen, um den Zeichencode im Static der 2. Seite anzuzeigen? Hier Auszüge aus dem Code:</p>
<p>CFormView, OnInitialUpdate (erzeugt die Seiten des TabCtrls):</p>
<pre><code class="language-cpp">// Inhalte des Tabs erzeugen
CDialog* dlg;

// Erzeugen und hinzufügen
dlg = new COrganisationTab();
ASSERT(dlg);
VERIFY(dlg-&gt;Create(IDD_ORGANISATION_TAB, &amp;m_NaviTabCtrl));
m_TabContent.Add(dlg);

dlg = new CWebDiagramTab();
ASSERT(dlg);
VERIFY(dlg-&gt;Create(IDD_WEBDIAGRAM_TAB, &amp;m_NaviTabCtrl));
m_TabContent.Add(dlg);
</code></pre>
<p>CFormView, OnTcnSelchangeNaviTab (Wenn durch die Tabs gesschaltet wird):</p>
<pre><code class="language-cpp">// 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-&gt;OnPaint();
</code></pre>
<p>CWebDiagramTab, OnPaint():</p>
<pre><code class="language-cpp">CStatic* stat = (CStatic*) GetDlgItem(IDC_WEBDIAGRAM_OUT);
ASSERT(stat);
CDC* cdc = stat-&gt;GetDC();
ASSERT (cdc);
cdc-&gt;LineTo(100,100);
cdc-&gt;TextOut(200,200, &quot;HUGO&quot;);
</code></pre>
<p>Leider bekomme ich so keine Ausgabe auf dem Static (trotzdem läuft alles fehlerfrei ab!)... Für jeden Tip bin ich dankbar!</p>
<p>Gruß<br />
Prog</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/52826/zeichnen-im-static-des-tabctrls-das-wiederum-in-einem-cformview-eingebettet-ist</link><generator>RSS for Node</generator><lastBuildDate>Mon, 01 Jun 2026 03:49:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/52826.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Oct 2003 14:00:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeichnen im Static des TabCtrls, das wiederum in einem CFormView eingebettet ist on Thu, 23 Oct 2003 14:00:08 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>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.</p>
<p>Wie muss ich nun vorgehen, um den Zeichencode im Static der 2. Seite anzuzeigen? Hier Auszüge aus dem Code:</p>
<p>CFormView, OnInitialUpdate (erzeugt die Seiten des TabCtrls):</p>
<pre><code class="language-cpp">// Inhalte des Tabs erzeugen
CDialog* dlg;

// Erzeugen und hinzufügen
dlg = new COrganisationTab();
ASSERT(dlg);
VERIFY(dlg-&gt;Create(IDD_ORGANISATION_TAB, &amp;m_NaviTabCtrl));
m_TabContent.Add(dlg);

dlg = new CWebDiagramTab();
ASSERT(dlg);
VERIFY(dlg-&gt;Create(IDD_WEBDIAGRAM_TAB, &amp;m_NaviTabCtrl));
m_TabContent.Add(dlg);
</code></pre>
<p>CFormView, OnTcnSelchangeNaviTab (Wenn durch die Tabs gesschaltet wird):</p>
<pre><code class="language-cpp">// 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-&gt;OnPaint();
</code></pre>
<p>CWebDiagramTab, OnPaint():</p>
<pre><code class="language-cpp">CStatic* stat = (CStatic*) GetDlgItem(IDC_WEBDIAGRAM_OUT);
ASSERT(stat);
CDC* cdc = stat-&gt;GetDC();
ASSERT (cdc);
cdc-&gt;LineTo(100,100);
cdc-&gt;TextOut(200,200, &quot;HUGO&quot;);
</code></pre>
<p>Leider bekomme ich so keine Ausgabe auf dem Static (trotzdem läuft alles fehlerfrei ab!)... Für jeden Tip bin ich dankbar!</p>
<p>Gruß<br />
Prog</p>
]]></description><link>https://www.c-plusplus.net/forum/post/378120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/378120</guid><dc:creator><![CDATA[ProgRulez]]></dc:creator><pubDate>Thu, 23 Oct 2003 14:00:08 GMT</pubDate></item></channel></rss>