<?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[CWnd::Print geht einmal, einmal nicht, warum?]]></title><description><![CDATA[<p>Hi<br />
Ich hab wiedereinmal ein stinknormales Dialogfeld mit einem Button und einem Rahmen (Membervariable: CStatic m_ctlDC).<br />
Wenn man auf den Button klickt, &quot;rendert&quot; sich das Dialogfeld in sich selber (über Print [bzw. WM_PRINT]).<br />
Wenn man auf den Button klickt, wird folgende Funktion aufgerufen:</p>
<pre><code class="language-cpp">CDC* dc = m_ctlDC.GetDC();	
pWnd-&gt;Print(dc, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED);
m_ctlDC.ReleaseDC(dc);
</code></pre>
<p>Jetzt hab ich noch ein &quot;Programm erstellt&quot;: und zwar nur das vom Klassenassi vorgefertigte Dialogprogramm(mir titel &quot;test&quot;) ohne änderungen kompiliert.<br />
Jetzt hab ich die obrige Funktion folgenderweise abgeändert:</p>
<pre><code class="language-cpp">CWnd* pWnd = CWnd::FindWindow(NULL,&quot;test&quot;);
if(!pWnd)
{
MessageBox(&quot;Fenster nicht gefunden&quot;);
return;
}

CDC* dc = m_ctlDC.GetDC();	
pWnd-&gt;Print(dc, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED);
m_ctlDC.ReleaseDC(dc);
</code></pre>
<p>Man sollte jetzt ja annehmen (und es ist so, wie der 1. Schritt bewiesen hat), dass die Klasse CDialog die WM_PRINT Nachricht implementiert hat.<br />
Doch der Dialog wird nicht gerendert????</p>
<p>Wo liegt hier der Fehler, komm einfach nicht dahinter.</p>
<p>Grüße twinlight</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/43108/cwnd-print-geht-einmal-einmal-nicht-warum</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 13:37:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/43108.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Jul 2003 16:14:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CWnd::Print geht einmal, einmal nicht, warum? on Fri, 18 Jul 2003 16:14:03 GMT]]></title><description><![CDATA[<p>Hi<br />
Ich hab wiedereinmal ein stinknormales Dialogfeld mit einem Button und einem Rahmen (Membervariable: CStatic m_ctlDC).<br />
Wenn man auf den Button klickt, &quot;rendert&quot; sich das Dialogfeld in sich selber (über Print [bzw. WM_PRINT]).<br />
Wenn man auf den Button klickt, wird folgende Funktion aufgerufen:</p>
<pre><code class="language-cpp">CDC* dc = m_ctlDC.GetDC();	
pWnd-&gt;Print(dc, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED);
m_ctlDC.ReleaseDC(dc);
</code></pre>
<p>Jetzt hab ich noch ein &quot;Programm erstellt&quot;: und zwar nur das vom Klassenassi vorgefertigte Dialogprogramm(mir titel &quot;test&quot;) ohne änderungen kompiliert.<br />
Jetzt hab ich die obrige Funktion folgenderweise abgeändert:</p>
<pre><code class="language-cpp">CWnd* pWnd = CWnd::FindWindow(NULL,&quot;test&quot;);
if(!pWnd)
{
MessageBox(&quot;Fenster nicht gefunden&quot;);
return;
}

CDC* dc = m_ctlDC.GetDC();	
pWnd-&gt;Print(dc, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED);
m_ctlDC.ReleaseDC(dc);
</code></pre>
<p>Man sollte jetzt ja annehmen (und es ist so, wie der 1. Schritt bewiesen hat), dass die Klasse CDialog die WM_PRINT Nachricht implementiert hat.<br />
Doch der Dialog wird nicht gerendert????</p>
<p>Wo liegt hier der Fehler, komm einfach nicht dahinter.</p>
<p>Grüße twinlight</p>
]]></description><link>https://www.c-plusplus.net/forum/post/312380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/312380</guid><dc:creator><![CDATA[twilight]]></dc:creator><pubDate>Fri, 18 Jul 2003 16:14:03 GMT</pubDate></item><item><title><![CDATA[Reply to CWnd::Print geht einmal, einmal nicht, warum? on Fri, 18 Jul 2003 16:21:09 GMT]]></title><description><![CDATA[<p>Aja, hab vergessen zu sagen, dass der 1. Code</p>
<pre><code class="language-cpp">CDC* dc = m_ctlDC.GetDC();     
pWnd-&gt;Print(dc, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED); 
m_ctlDC.ReleaseDC(dc);
</code></pre>
<p>perfekt funktioniert, nur eben nicht, wenn ich statt this einen zeiger auf ein anderes &quot;MFC-Dialogfenster&quot; hab</p>
]]></description><link>https://www.c-plusplus.net/forum/post/312390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/312390</guid><dc:creator><![CDATA[twinlight]]></dc:creator><pubDate>Fri, 18 Jul 2003 16:21:09 GMT</pubDate></item><item><title><![CDATA[Reply to CWnd::Print geht einmal, einmal nicht, warum? on Sat, 19 Jul 2003 18:36:09 GMT]]></title><description><![CDATA[<p>Hi<br />
ich beim surfen auf den Hinweis gestoßen, dass das Fenster, dass die WM_PRINT Nachricht empfängt im gleichen Prozess laufen muss, damit das DC gültig bleibt...</p>
<p>Dies verstehe ich ehrlich gesagt überhaupt nicht, könnt ihr mir helfen?</p>
<p>Grüße twin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/312961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/312961</guid><dc:creator><![CDATA[twinlight]]></dc:creator><pubDate>Sat, 19 Jul 2003 18:36:09 GMT</pubDate></item><item><title><![CDATA[Reply to CWnd::Print geht einmal, einmal nicht, warum? on Sun, 20 Jul 2003 09:08:24 GMT]]></title><description><![CDATA[<p>und nochmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /><br />
ich bin bei meiner Recherche auf die Aussage gestoßen, dass man die WM_PRINT Nachricht nur in eigenen Fenstern verwenden kann (aus eben dem vorher gesagten Grund)</p>
<p>Kann mir das jemand bestätigen / wiederlegen ?</p>
<p>Grüße twinlight</p>
]]></description><link>https://www.c-plusplus.net/forum/post/313131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/313131</guid><dc:creator><![CDATA[twinlight]]></dc:creator><pubDate>Sun, 20 Jul 2003 09:08:24 GMT</pubDate></item><item><title><![CDATA[Reply to CWnd::Print geht einmal, einmal nicht, warum? on Sun, 20 Jul 2003 17:54:32 GMT]]></title><description><![CDATA[<p>und wieder nochmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /><br />
Kann ich vielleicht eine funktion in den Prozess des anderen Windows &quot;reinschmuggeln&quot; oder &quot;renstecken&quot; - k.A. wie man das nennen soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ?<br />
So wär dieses Problem umgangen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/313453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/313453</guid><dc:creator><![CDATA[twinlight]]></dc:creator><pubDate>Sun, 20 Jul 2003 17:54:32 GMT</pubDate></item></channel></rss>