<?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[Numerierung der Fenstertitel bei MDI]]></title><description><![CDATA[<p>(OT: Ja, ja, ich weiss - Rechtschreibreform. Aber die Numerierung ist nunmal numerisch und nicht nummerisch.)</p>
<p>In einer MDI-Umgebung lassen sich bekanntlich auch für ein und dasselbe CDocument mehrere CView anlegen. Beim ersten CView erscheint in der Titelleiste der Dateiname oder ein Default-Name, in MS-Word z.B. &quot;Dokument1&quot;. Mehrere CView für dasselbe CDocument werden per CMDIFrameWnd::OnWindowNew() angelegt und dabei automatisch und zwangsläufig mit dem Titel &quot;Dokument1:1&quot;, &quot;Dokument1:2&quot; usw. versehen.</p>
<p>Hat jemand eine Idee, wie ein von CView abgeleiter CMyView an diese :nummer herankommen kann? CWnd::GetWindowText() bringt's nicht und CDocument::GetTitle() liefert nur den Titel ohne :nummer, weil die ja eben vom View abhängig ist.</p>
<p>Mit CDocument::GetFirstViewPosition() und CDocument::GetNextView() kann man sämtliche vorhandenen Views abklappern. Notlösung ist also bisher, CView::this mit GetDocument()-&gt;GetNextView() zu vergleichen und mitzuzählen. Aber irgendwo muss doch auch diese :nummer stecken <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/78449/numerierung-der-fenstertitel-bei-mdi</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Apr 2026 20:22:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/78449.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Jul 2004 14:44:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Numerierung der Fenstertitel bei MDI on Thu, 01 Jul 2004 14:44:30 GMT]]></title><description><![CDATA[<p>(OT: Ja, ja, ich weiss - Rechtschreibreform. Aber die Numerierung ist nunmal numerisch und nicht nummerisch.)</p>
<p>In einer MDI-Umgebung lassen sich bekanntlich auch für ein und dasselbe CDocument mehrere CView anlegen. Beim ersten CView erscheint in der Titelleiste der Dateiname oder ein Default-Name, in MS-Word z.B. &quot;Dokument1&quot;. Mehrere CView für dasselbe CDocument werden per CMDIFrameWnd::OnWindowNew() angelegt und dabei automatisch und zwangsläufig mit dem Titel &quot;Dokument1:1&quot;, &quot;Dokument1:2&quot; usw. versehen.</p>
<p>Hat jemand eine Idee, wie ein von CView abgeleiter CMyView an diese :nummer herankommen kann? CWnd::GetWindowText() bringt's nicht und CDocument::GetTitle() liefert nur den Titel ohne :nummer, weil die ja eben vom View abhängig ist.</p>
<p>Mit CDocument::GetFirstViewPosition() und CDocument::GetNextView() kann man sämtliche vorhandenen Views abklappern. Notlösung ist also bisher, CView::this mit GetDocument()-&gt;GetNextView() zu vergleichen und mitzuzählen. Aber irgendwo muss doch auch diese :nummer stecken <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/551010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551010</guid><dc:creator><![CDATA[Nulliver]]></dc:creator><pubDate>Thu, 01 Jul 2004 14:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to Numerierung der Fenstertitel bei MDI on Thu, 01 Jul 2004 17:59:37 GMT]]></title><description><![CDATA[<p>Ich würd versuchen, die direkt vom View (oder der View-Erzeugung) zu bekommen. Nachträglcih 'nen UI-String auslesen und auseinanderparsen ist immer ne schlechte Idee.</p>
<p>[edit]<br />
CFrameWnd hat einen (undokumentierten public) Member m_nWindow mit folgendem Kommentar:</p>
<pre><code class="language-cpp">int m_nWindow;  // general purpose window number - display as &quot;:n&quot;
                // -1 =&gt; unknown, 0 =&gt; only window viewing document
	      // 1 =&gt; first of many windows viewing document, 2=&gt; second
</code></pre>
<p>Ist das nix?</p>
<p>[/edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/551185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551185</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Thu, 01 Jul 2004 17:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Numerierung der Fenstertitel bei MDI on Thu, 01 Jul 2004 21:31:42 GMT]]></title><description><![CDATA[<p>Bingo, das isses! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Danke, hat mir bestens geholfen! Man braucht lediglich in <strong>CMyView::OnInitialUpdate()</strong> einfach <em><em>((CMDIChildWnd</em>)GetParent())-&gt;m_nWindow</em>* abholen. Wenn man's weiß, isses ganz einfach ...</p>
<p>Die Nummer aus dem String zu popeln war auch nur geplant, weil ich nicht wusste, wo ich sie sonst hernehmen soll. Davon abgesehen konnte <strong>CWnd::GetWindowText()</strong> nichts bringen. Hab' nicht mehr daran gedacht, dass da noch ein <strong>CMDIChildWnd</strong> drumherum ist. Also <strong>GetParent()-&gt;GetWindowText()</strong> könnte in CMyView auf den Titel incl. :nummer zugreifen, aber das hat sich ja jetzt erledigt.</p>
<p>Falls es jemand interessiert: Bei der Suche nach <strong>m_nWindow</strong> in der Knowledge Base bin ich auch noch auf Artikel <strong>Q99182</strong> gestoßen, in dem beschrieben wird, wie die zwangsläufige Ausgabe des Titels unterdrückt werden kann um einen beliebigen View-Titel auszugeben:</p>
<pre><code>BOOL CMyChildFrame::PreCreateWindow(CREATESTRUCT &amp;cs)
{
  if(!CMDIChildWnd::PreCreateWindow(cs)) return(FALSE);
  [b]cs.style &amp;= ~FWS_ADDTOTITLE; //suppress output of doc title in header[/b]
  return(TRUE);
}

void CMyView::OnInitialUpdate()
{
  CMYVIEWBASECLASS::OnInitialUpdate();
  [b]GetParent()-&gt;SetWindowText(_T(&quot;Bescheid!&quot;));[/b]
  ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/551351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551351</guid><dc:creator><![CDATA[Nulliver]]></dc:creator><pubDate>Thu, 01 Jul 2004 21:31:42 GMT</pubDate></item></channel></rss>