<?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[Zeichenbreich in rect-Struktur]]></title><description><![CDATA[<p>Hallo!</p>
<p>Also wenn ich außerhalb der WM_PAINT-Message etwas male, oder irgendwelche Buttons erstelle, dann muss ich den Buttons irgendwelche Koordinaten zuordnen!</p>
<p>Wenn ich jetzt meinen Windowsstyle veränder, dann ist oben die Adresszeile manchmal breiter und manchmal dünner, das hat zur Folge, dass mein Hintergrundbild nach unten oder oben &quot;verschoben&quot; wird, aber meine Buttons noch dort bleiben, wo sie vorher waren, weil sie sich an rect-koordinaten orientieren. Diese rect-Koordinaten hab ich mit der Funktion GetClientRect(); bekommen ...</p>
<p>Gibt es auch eine Funktion, die mir die Koordinaten nur vom zeichenbereich zurück gibt und dabei die Breite der Titelleiste und der Menuleiste ignoriert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143519/zeichenbreich-in-rect-struktur</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 13:59:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143519.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Apr 2006 12:22:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Sun, 09 Apr 2006 12:22:13 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Also wenn ich außerhalb der WM_PAINT-Message etwas male, oder irgendwelche Buttons erstelle, dann muss ich den Buttons irgendwelche Koordinaten zuordnen!</p>
<p>Wenn ich jetzt meinen Windowsstyle veränder, dann ist oben die Adresszeile manchmal breiter und manchmal dünner, das hat zur Folge, dass mein Hintergrundbild nach unten oder oben &quot;verschoben&quot; wird, aber meine Buttons noch dort bleiben, wo sie vorher waren, weil sie sich an rect-koordinaten orientieren. Diese rect-Koordinaten hab ich mit der Funktion GetClientRect(); bekommen ...</p>
<p>Gibt es auch eine Funktion, die mir die Koordinaten nur vom zeichenbereich zurück gibt und dabei die Breite der Titelleiste und der Menuleiste ignoriert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033724</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Sun, 09 Apr 2006 12:22:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Mon, 10 Apr 2006 07:17:03 GMT]]></title><description><![CDATA[<p>Guten Morgen!</p>
<p>Ich hab mir etwas überlegt *g*, ich könnte auch &quot;einfach&quot; eine eigene Titelleiste zeichen, nur dazu kann ich leider hier in der Suche wenig finden ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034259</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Mon, 10 Apr 2006 07:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Mon, 10 Apr 2006 09:13:53 GMT]]></title><description><![CDATA[<p>Normalerweise arbeitest du doch immer mit Client-Koodinaten - von daher verstehe ich dein Problem gerade nicht so ganz...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034322</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 10 Apr 2006 09:13:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Mon, 10 Apr 2006 17:57:06 GMT]]></title><description><![CDATA[<p>Ja, warte mal, ich werds dir mal an Hand eines(zweier) Screenshots erklären!</p>
<p>schau genau auf den Würfel im Zusammenspiel mit seinem Hintergrund:<br />
<a href="http://www.sro.at/bildupload/images/verschoben.jpg" rel="nofollow">http://www.sro.at/bildupload/images/verschoben.jpg</a><br />
oben, sowie unten</p>
<p>Der &quot;Fehler&quot; ist zwar nur minmal, aber trotzdem &quot;nervig&quot;!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034707</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Mon, 10 Apr 2006 17:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Mon, 10 Apr 2006 18:08:02 GMT]]></title><description><![CDATA[<p>Und das mit dem roten Kreuzchen ist ein Control? Oder zeichnest du das auch selber rein? Und wo und wie zeichnest du den Hintergrund?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034717</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 10 Apr 2006 18:08:02 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Mon, 10 Apr 2006 21:06:55 GMT]]></title><description><![CDATA[<p>Das mit dem roten Kreuzchen ist ein Bitmap (ein &quot;leerer&quot; Würfel), je nachdem was man würfelt, so verändert sich auch das Bitmap, es bleibt aber an der selben stelle ...</p>
<p>Den Hintergrund zeichne ich so:</p>
<pre><code class="language-cpp">wndclass.hbrBackground = CreatePatternBrush((HBITMAP) LoadImage(hInstance, &quot;Bitmaps/Kniffel-nHG4.bmp&quot;, IMAGE_BITMAP, 0, 0, 
		    LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_CREATEDIBSECTION))
</code></pre>
<p>Also als Brush ... Und der passt sich genau an die Größe der Titelleiste + Menüleiste an, also &quot;geht runter&quot; bzw. &quot;hoch&quot;, ganz im Gegensatz zu meinen Controls, oder Bitmaps, die bleiben fest an ihrem Ort, egal wie groß die Titel- + Menüleiste sind -&gt; Verschiebungen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034812</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Mon, 10 Apr 2006 21:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Tue, 11 Apr 2006 08:22:39 GMT]]></title><description><![CDATA[<p>Top_se schrieb:</p>
<blockquote>
<p>Das mit dem roten Kreuzchen ist ein Bitmap (ein &quot;leerer&quot; Würfel), je nachdem was man würfelt, so verändert sich auch das Bitmap, es bleibt aber an der selben stelle ...<br />
[...] passt sich genau an die Größe der Titelleiste + Menüleiste an, also &quot;geht runter&quot; bzw. &quot;hoch&quot;, ganz im Gegensatz zu meinen Controls, oder Bitmaps, die bleiben fest an ihrem Ort, egal wie groß die Titel- + Menüleiste sind -&gt; Verschiebungen ...</p>
</blockquote>
<p>Und wo und wie zeichnest du die Kreuzchen bzw. wie erstellst du die Controls (falls du dafür ein eigenes Control verwendest)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034954</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 11 Apr 2006 08:22:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Tue, 11 Apr 2006 09:31:32 GMT]]></title><description><![CDATA[<p>Also die Kreuzchen erstelle ich in einer ZeichenMessage einfach mit BitBlt:</p>
<pre><code class="language-cpp">SelectObject (hdcMem, hBtmWue0) ;
												BitBlt (hdc, x, y,   40, 40, hdcMem, 0, 0, SRCCOPY) ;
												break;
</code></pre>
<p>und meine Controls in der WM_CREATE z.b. so:</p>
<pre><code class="language-cpp">CreateWindow(&quot;BUTTON&quot;, &quot;wuerfeln&quot;, 
				 WS_CHILD|WS_VISIBLE,
				 53, 401, 130, 40,
				 hwnd, (HMENU)ID_wuerfeln, hInstance, 0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1035008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035008</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Tue, 11 Apr 2006 09:31:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Tue, 11 Apr 2006 10:28:49 GMT]]></title><description><![CDATA[<p>Und sowohl die Controls als auch die Kreuzchen sitzen falsch, oder nur letztere? Wie holst du dir dein hdc?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035060</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 11 Apr 2006 10:28:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Tue, 11 Apr 2006 16:51:55 GMT]]></title><description><![CDATA[<p>Ähm, naja, was nun genau falsch gezeichnet wird ist eine schwere Frage, zumindest harmonieren sie nicht miteinander *g*, sprich das eine (der Hintergrund) verschieb sich je nach Größe der Titelleiste, und die Controls und Bitmaps bleiben fest an ihren Orten sitzen, egal wie groß die Titelleiste ist!</p>
<p>Also nochmal genau zu deiner Frage: Beide werden &quot;falsch&quot; gezeichnet, es gibt keinen Unterschied zwischen den Kreuzchen(Bitmaps) und den Controls ...</p>
<p>Mein hdc des Fenster, auf dem ich die Controls und Bitmaps zeichne bekomme ich wie gewohnt:</p>
<pre><code class="language-cpp">hdc = GetWindowDC(hwnd);		 
hdcMem = CreateCompatibleDC(hdc) ;
</code></pre>
<p>oder ist da etwas Falsches dran?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035411</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Tue, 11 Apr 2006 16:51:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Wed, 12 Apr 2006 07:36:44 GMT]]></title><description><![CDATA[<p>Nimm statt GetWindowDC GetDC, damit bekommst du ein Handle auf den DC deiner Client-Area <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 />
Bzw. eigentlich solltest du auf das tatsächliche Fenster nur in WM_PAINT zeichnen (in deinen MemoryDC kannst du das überall tun). Am besten einmal in den MemoryDC und diesen dann einfach in WM_PAINT immer in dein Fenster blitten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035662</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 12 Apr 2006 07:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Wed, 12 Apr 2006 08:21:36 GMT]]></title><description><![CDATA[<p>Hey, danke!</p>
<p>Ich habe die WM_PAINT-Message bisher verschmäht, weil ich diese nicht direkt manuell aufrufen kann ... Da war mir meine eigenen PM_MALEN-Message lieber <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="😃"
    /></p>
<p>Ich hab zwar noch ein kleines Problemchen, aber ich glaube ich das kann ich selbst lösen, also zumindest versuch ich das erstmal selbst!</p>
<p>Mercy!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035700</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Wed, 12 Apr 2006 08:21:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Wed, 12 Apr 2006 08:52:38 GMT]]></title><description><![CDATA[<p>Top_se schrieb:</p>
<blockquote>
<p>Ich habe die WM_PAINT-Message bisher verschmäht, weil ich diese nicht direkt manuell aufrufen kann</p>
</blockquote>
<p>stimmt nicht<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_4zef.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_4zef.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035723</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Wed, 12 Apr 2006 08:52:38 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Wed, 12 Apr 2006 09:19:36 GMT]]></title><description><![CDATA[<p>Lol, welche Zufall, genau vor ca. 2 mins hab ich mir diese MSDN-Page angeschaut und komisch geguckt <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 />
Naja, ich werde das in zukünftigen programmen besser machen, aber jetzt möchte ich nichtmehr meinen ganzen Code umkrempeln ...<br />
Ach ja, und mit der Funktion kann ich aber meiner Paintmessage keine Parameter übergeben ...</p>
<p>Ähm, ich hatte aber eigentl. einen anderen Grund, warum ich auf die MSDN-Page gegangen bin, ich hatte nach einer Funktion gesucht, die mir alle Controls &quot;aktualisiert&quot;, also wenn man z.b. eine Bitmap drüber zeichenet, dann verschienden die Controls ja und erst, wenn man wieder mit der Maus drüber fährt werden sie wieder &quot;sichtbar&quot;, gibts da eine Funktion, oder soll ich jedes Control einfach irgendwie ansprechen, z.b. bei nem Button einen Häkchen setzen und gleich wieder weg machen *g*!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035752</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Wed, 12 Apr 2006 09:19:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Sat, 15 Apr 2006 11:52:15 GMT]]></title><description><![CDATA[<p>So, also ich habe das Problem jetzt irgendwie ganz komisch gelöst *g*</p>
<p>Also ich habe halt wie gesagt eine PM_MALEN-Message und wenn ich diese mit dem wParam 4 aufrufe, dann komme ich zu dieser Abzweigung:</p>
<pre><code class="language-cpp">if (LOWORD(wParam) == 4)
	{
	hBtmHG = (HBITMAP) LoadImage(hInstance, REG_getHGPfad(), IMAGE_BITMAP, 0,
                  0, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_  CREATEDIBSECTION);
      SelectObject (hdcMem, hBtmHG) ;
	BitBlt(hdc,0,0,540,607,hdcMem, 0, 0, SRCCOPY);					

	//Fensterrect.bottom = 1000;
	//Fensterrect.left = 0;
	//Fensterrect.right = 1000;
	//Fensterrect.top = 0;
	//InvalidateRect(hwnd, &amp;Fensterrect, TRUE);
	//UpdateWindow(hwnd);
	};
</code></pre>
<p>hier wird halt mein Hintergrund gemalt!</p>
<p>Wenn ich das jetzt so ^^ machen würde dann sieht meine Oberfläche so aus:<br />
<a href="http://www.sro.at/bildupload/images/HG-drueber.jpg" rel="nofollow">http://www.sro.at/bildupload/images/HG-drueber.jpg</a><br />
also das Hintergrundbild liegt über meinen Controls.</p>
<p>Wenn ich den Abzweig so hier machen würde:</p>
<pre><code class="language-cpp">if (LOWORD(wParam) == 4)
	{
	hBtmHG = (HBITMAP) LoadImage(hInstance, REG_getHGPfad(), IMAGE_BITMAP, 0,
                  0, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_  CREATEDIBSECTION);
      SelectObject (hdcMem, hBtmHG) ;
	BitBlt(hdc,0,0,540,607,hdcMem, 0, 0, SRCCOPY);					

	Fensterrect.bottom = 1000;
	Fensterrect.left = 0;
	Fensterrect.right = 1000;
	Fensterrect.top = 0;
	InvalidateRect(hwnd, &amp;Fensterrect, TRUE);
	UpdateWindow(hwnd);
	};
</code></pre>
<p>Dann würde meine Oberfläche so aussehen:<br />
<a href="http://www.sro.at/bildupload/images/HG-weg.jpg" rel="nofollow">http://www.sro.at/bildupload/images/HG-weg.jpg</a><br />
also mein Hintergrundbild wird von InvalideRect halt &quot;zerstört&quot;, aber meine Controls sind zu sehen ...</p>
<p>Aber jetzt kommts, wenn ich jetzt zusätzlich noch die WM_PAINT-Message (wird ja mit UpdateWindow(hwnd) hervorgerufen) so umlenke, dass sie mir wieder meine PM_MALEN mit dem wParam 4 aufruft, also so:</p>
<pre><code class="language-cpp">case WM_PAINT :
			{
				SendMessage(hwnd,PM_MALEN,4,0);				
			};
</code></pre>
<p>Dann sieht meine Oberfläche klasse aus, also so:<br />
<a href="http://www.sro.at/bildupload/images/gut.jpg" rel="nofollow">http://www.sro.at/bildupload/images/gut.jpg</a></p>
<p>ABer dann komm ich ja sozusagen in eine &quot;Endlosschleife, weil meine PM_MALEN ja dann ständig eine WM_PAINT-Message schickt und andersrum ...<br />
Aber das wirkt sich irgendwie nicht auf meine CPU-Auslastung aus ...<br />
Kann mir das einer von euch erklären, würde mich freuen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037845</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Sat, 15 Apr 2006 11:52:15 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Sat, 15 Apr 2006 16:34:10 GMT]]></title><description><![CDATA[<p>Du musst Windows irgendwo sagen, dass dein Fensterinhalt wieder gültig ist (ValidateRect) - normalerweise macht man dies mittels Begin-/EndPaint bei WM_PAINT. Also zeiche lieber alle in WM_PAINT und leite lieber PM_MALEN dorthin mit InvalidateRect um - deinen Parameter von dort kannst du ja z.B. in einer static Variable speichern...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1038014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1038014</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 15 Apr 2006 16:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenbreich in rect-Struktur on Mon, 17 Apr 2006 08:14:28 GMT]]></title><description><![CDATA[<p>So, der Osterstress hat sich ein wenig gelegt, jetzt habe ich wieder Zeit für andere Dinge ...</p>
<p>Also dankeschön für deine Antwort!<br />
Jetzt habe ich nurnoch das Problem, dass unter meinen mit TextOut()-erstellten Texten so ein doofer weißer Hintergrund ist! Ich dachte eigentl. dass man das mit einem Brush beheben kann, und habe es auch so probiert:</p>
<pre><code class="language-cpp">hBrush = CreatePatternBrush(hBtmHG);
	SelectObject(hdc, hBrush);
	SelectObject(hdcMem, hBrush);				

	MoveToEx(hdc,460,158,NULL);
	LineTo(  hdc,505,158);

	wsprintf(szNachricht,&quot;Summe1:&quot;);
	TextOut(hdc,280,164,szNachricht,7);
	wsprintf(szPunkte,&quot;%3d&quot;,Summe0);
	TextOut(hdc,472,164,szPunkte,3);				
	wsprintf(szNachricht,&quot;Bonus (63/35 bzw 85/50):&quot;);
      TextOut(hdc,280,184,szNachricht,24);
	wsprintf(szPunkte,&quot;%3d&quot;,Bonus);
	TextOut(hdc,472,184,szPunkte,3);
      . 
      .
      .
</code></pre>
<p>Dabei ist hBtmHG das Handel zu meinem Hintergrundbitmap!</p>
<p>Aber der Hintergrund der Text bleibt immernoch weiß, dies sieht man auch an den Screenshots von oben, die ich da gezeigt habe ...</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1038874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1038874</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Mon, 17 Apr 2006 08:14:28 GMT</pubDate></item></channel></rss>