<?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[Window Handle für InvalidateRect]]></title><description><![CDATA[<p>Hallo,</p>
<p>ist zwar ne Anfängerfrage, aber als solcher stell ich die einfach mal:<br />
Habe mir ein Programm von VS2005 erstellen lassen, mit Doc View etc.</p>
<p>Wie bekomme ich jetzt einen HWDN Handler? Finde ihn nicht in meinem Code.</p>
<p>Ich brauche den Handler für die Funktion InvalidateRect(HWND,Rect,erase) und kriegs nicht hin.<br />
bzw. wenn ich den 0 setze flackert der Bildschirm, weil alle Fenster neu gezeichnet werden wollen und es geht nichts mehr <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>
<p>Die Funktion in der ich InvalidateRect aufrufen will, gehört einer weiteren selbstgestrickten Klasse an (nicht View oder Doc oder MainFrm...)<br />
Vielen Dank und eine Gute Nacht<br />
kyp</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186193/window-handle-für-invalidaterect</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 08:05:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186193.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Jul 2007 02:17:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Window Handle für InvalidateRect on Fri, 06 Jul 2007 02:17:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ist zwar ne Anfängerfrage, aber als solcher stell ich die einfach mal:<br />
Habe mir ein Programm von VS2005 erstellen lassen, mit Doc View etc.</p>
<p>Wie bekomme ich jetzt einen HWDN Handler? Finde ihn nicht in meinem Code.</p>
<p>Ich brauche den Handler für die Funktion InvalidateRect(HWND,Rect,erase) und kriegs nicht hin.<br />
bzw. wenn ich den 0 setze flackert der Bildschirm, weil alle Fenster neu gezeichnet werden wollen und es geht nichts mehr <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>
<p>Die Funktion in der ich InvalidateRect aufrufen will, gehört einer weiteren selbstgestrickten Klasse an (nicht View oder Doc oder MainFrm...)<br />
Vielen Dank und eine Gute Nacht<br />
kyp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1319319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1319319</guid><dc:creator><![CDATA[kyp]]></dc:creator><pubDate>Fri, 06 Jul 2007 02:17:20 GMT</pubDate></item><item><title><![CDATA[Reply to Window Handle für InvalidateRect on Fri, 06 Jul 2007 06:14:42 GMT]]></title><description><![CDATA[<p>Wo lebt die Klasse? Im View?<br />
Dann kannst Du ihr doch das View Window Handle mitgeben, wenn Du die Klasse erzeugst.<br />
Oder wenn die Klasse etwas anzeigt übergibst Du das Handle mit an die entsprechende Funktion.</p>
<p>Beachte bitte, dass Du nur in OnDraw des Views zeichnen solltest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1319349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1319349</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 06 Jul 2007 06:14:42 GMT</pubDate></item><item><title><![CDATA[Reply to Window Handle für InvalidateRect on Fri, 06 Jul 2007 11:32:18 GMT]]></title><description><![CDATA[<p>hey, danke schonmal für das interesse.<br />
die klasse lebt ausserhalb des view. hab ihr eine funktion draw gegeben mit dem argument (Pointer zum DC). Draw soll die linie zeichnen und dann den bereich, wo gezeichnet wurde für invalid erklären. nur da liegt der hund begraben. kann invalidaterect nicht richtig aufrufen...</p>
<p>also ungefähr so aus dem kopf:</p>
<pre><code class="language-cpp">CProgView::OnDraw(...)
{
...
while(atposition)
linien_liste.getnext(atposition)-&gt;draw(pDC); //CTypePtrList
...
}

linie::draw(pDC)
{
//hier wird alles andere gemacht (PenCreate...)
...
pDC-&gt;MoveTo(p1);
pDC-&gt;LineTo(p2);

CRect rect(p1,p2);

InvalidateRect(HWND,rect,0);   //und hier flackerts wenn ich ne 0 für HWND  eintrage
}
</code></pre>
<p>was kann ich tun? da ich noch andere elemente brauche, wäre es sinnig, die draw funktionen in die entsprechende klasse zu schreiben, anstatt im view.<br />
kyp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1319602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1319602</guid><dc:creator><![CDATA[kyp]]></dc:creator><pubDate>Fri, 06 Jul 2007 11:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to Window Handle für InvalidateRect on Fri, 06 Jul 2007 12:45:45 GMT]]></title><description><![CDATA[<p>Wieso machst Du während des Draws einen InvalidateRect? Was bezweckst Du damit. Das löst natürlich einen neuen Draw aus mit Flackern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1319673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1319673</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 06 Jul 2007 12:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to Window Handle für InvalidateRect on Sat, 07 Jul 2007 11:56:42 GMT]]></title><description><![CDATA[<p>du hast recht. ist natürlich banane. hab den wald vor lauter bäumen nicht gesehen! danke vielmals.<br />
und ein schönes wochenende<br />
kyp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1320183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320183</guid><dc:creator><![CDATA[kyp]]></dc:creator><pubDate>Sat, 07 Jul 2007 11:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to Window Handle für InvalidateRect on Sat, 07 Jul 2007 13:07:00 GMT]]></title><description><![CDATA[<p>Trotzdem: Wie bekomme ich den HWND Handler? Also:<br />
In meinem Document wird ein Dialog aufgerufen. In diesem Dialog werden Linienwerte gespeichert und diese möchte ich jetzt zeichnen, nachdem der Dialog geschlossen wurde.<br />
Wann muss ich InvalidateRect aufrufen? In der Dialogaufrufenden Funktion:</p>
<pre><code class="language-cpp">void CProgDoc::OnEditBodies()
{
	Dialog_Bodies			aDlg;	
	aDlg.pStorage			= pStorage;	//hier werden Daten gespeichert
	CRect rect;
         rect = ???;
         aDlg.DoModal();
         InvalidateRect(??,rect,0)   //hier aufrufen?
}
</code></pre>
<p>Hier hab ich nur das Problem, dass ich<br />
1. den Window Handler nicht hab<br />
2. nicht weiß, welches rect ich neu zeichnen will</p>
<p>Kann keine Funktionen finden, die mein Vorhaben möglich machen.</p>
<p>Oder im Dialog selber? Also z.B. in OnOk?<br />
Im Dialog wird eine andere Version von InvalidateRect aufgerufen, die nur 2 Argumente akzeptiert: Rectangle und bErase.</p>
<p>Oder soll ich Dialoge vom View aus aufrufen? Wäre unpassend, weil ich schon mehrere Dialoge im Document erstellt habe.</p>
<p>Besten Gruß<br />
Kyp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1320211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320211</guid><dc:creator><![CDATA[kyp]]></dc:creator><pubDate>Sat, 07 Jul 2007 13:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Window Handle für InvalidateRect on Sat, 07 Jul 2007 15:20:24 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Hab jetzt versucht, Dialoge über Buttons durch die View Klasse aufzurufen, das funktioniert leider nicht. Das Programm wird dann bei der Erstellung der View abgebrochen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1320267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320267</guid><dc:creator><![CDATA[kyp]]></dc:creator><pubDate>Sat, 07 Jul 2007 15:20:24 GMT</pubDate></item></channel></rss>