<?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[Auswahlrahmen mit Win32-API-Mitteln erstellen]]></title><description><![CDATA[<p>Da es in meinem vorherigen Thread (<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-175423.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-175423.html</a>) zu allgemein war, nöchte ich jetzt direkt fragen wie man so einen Auswahlrahnem (ist das überhaupt der richtige Name, wenn nicht wie heißt das überhaupt richtig?) nit Win32-API Mitteln erstellt.</p>
<p>Bisher habe ich folgendes:</p>
<pre><code class="language-cpp">case WM_LBUTTONDOWN:
			// aktuelle Mausposition ermitteln
        		x = LOWORD(lParam);
			y = HIWORD(lParam);

			x_Start = x;
			y_Start = y;

			isDrawing = true;

	 break;
</code></pre>
<p>damit merke ich mir den Startpunkt. So, dann behandel ich die WM_MOUSEMOVE Message:</p>
<pre><code class="language-cpp">case WM_MOUSEMOVE :
if (isDrawing) // Rechteck wird gewähk und wird gezeihnet
{				

    SelectObject(hDC, Brush);
    SelectObject(hDC, Pen);	

    x = LOWORD(lParam);
    y = HIWORD(lParam);

    Rectangle(hDC, x_Start, y_Start, x * Programminfo.Raster, y * Programminfo.Raster / 2);
}
break;
</code></pre>
<pre><code class="language-cpp">case WM_LBUTTONUP :
    isDrawing = false;
    break;
</code></pre>
<p>Meine Pen habe ich mit</p>
<pre><code class="language-cpp">Pen = CreatePen(PS_DASH,1,RGB(255,255,255));
</code></pre>
<p>erstellt, damit der unterbrochene Stricheffekt erzeugt wird. Nur wird nirgends das Rechteck gezeichnet. Als Nob in Win32-API Programmierung stehe ich grad völlig auf dem Schlauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Hat jemand von Euch einen Tipp oder kann mir sagen wie dieses Auswahl-Dinges überhaupt richtig heißt, damit ich bei google was dazu finde?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175587/auswahlrahmen-mit-win32-api-mitteln-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 01:43:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175587.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Mar 2007 11:29:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Mon, 12 Mar 2007 11:29:36 GMT]]></title><description><![CDATA[<p>Da es in meinem vorherigen Thread (<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-175423.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-175423.html</a>) zu allgemein war, nöchte ich jetzt direkt fragen wie man so einen Auswahlrahnem (ist das überhaupt der richtige Name, wenn nicht wie heißt das überhaupt richtig?) nit Win32-API Mitteln erstellt.</p>
<p>Bisher habe ich folgendes:</p>
<pre><code class="language-cpp">case WM_LBUTTONDOWN:
			// aktuelle Mausposition ermitteln
        		x = LOWORD(lParam);
			y = HIWORD(lParam);

			x_Start = x;
			y_Start = y;

			isDrawing = true;

	 break;
</code></pre>
<p>damit merke ich mir den Startpunkt. So, dann behandel ich die WM_MOUSEMOVE Message:</p>
<pre><code class="language-cpp">case WM_MOUSEMOVE :
if (isDrawing) // Rechteck wird gewähk und wird gezeihnet
{				

    SelectObject(hDC, Brush);
    SelectObject(hDC, Pen);	

    x = LOWORD(lParam);
    y = HIWORD(lParam);

    Rectangle(hDC, x_Start, y_Start, x * Programminfo.Raster, y * Programminfo.Raster / 2);
}
break;
</code></pre>
<pre><code class="language-cpp">case WM_LBUTTONUP :
    isDrawing = false;
    break;
</code></pre>
<p>Meine Pen habe ich mit</p>
<pre><code class="language-cpp">Pen = CreatePen(PS_DASH,1,RGB(255,255,255));
</code></pre>
<p>erstellt, damit der unterbrochene Stricheffekt erzeugt wird. Nur wird nirgends das Rechteck gezeichnet. Als Nob in Win32-API Programmierung stehe ich grad völlig auf dem Schlauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Hat jemand von Euch einen Tipp oder kann mir sagen wie dieses Auswahl-Dinges überhaupt richtig heißt, damit ich bei google was dazu finde?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243884</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Mon, 12 Mar 2007 11:29:36 GMT</pubDate></item><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Mon, 12 Mar 2007 11:35:31 GMT]]></title><description><![CDATA[<p>wo bekommst du denn hDC her?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243888</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 12 Mar 2007 11:35:31 GMT</pubDate></item><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Mon, 12 Mar 2007 11:36:26 GMT]]></title><description><![CDATA[<p>Malen darfst du nur während der Behandlung von WM_PAINT. Da hast du dann auch einen DC, mit dem das funktionieren sollte. Wo deiner (hDC) herkommt, sieht man ja nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243890</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 12 Mar 2007 11:36:26 GMT</pubDate></item><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Mon, 12 Mar 2007 11:38:53 GMT]]></title><description><![CDATA[<p>den hDC hab ich mir so geholt:</p>
<pre><code class="language-cpp">hDC = GetDC(Programminfo.handles.Zeichnenfenster);
</code></pre>
<p>Darf man nur bei WM_PAINT malen? Wenn ja wie löse ich das aus, dass ich hier die Werte kriege und dann bei Paint das Rechteck zeichne?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243892</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Mon, 12 Mar 2007 11:38:53 GMT</pubDate></item><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Mon, 12 Mar 2007 11:40:17 GMT]]></title><description><![CDATA[<p>Bard00 schrieb:</p>
<blockquote>
<p>Darf man nur bei WM_PAINT malen?</p>
</blockquote>
<p>Ja.</p>
<blockquote>
<p>Wenn ja wie löse ich das aus, dass ich hier die Werte kriege und dann bei Paint das Rechteck zeichne?</p>
</blockquote>
<p>Du kannst dir doch bei WM_MOUSEMOVE auf dieselbe Art und Weise die aktuelle Endposition merken, wie die Startposition bei WM_LBUTTONDOWN.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243896</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 12 Mar 2007 11:40:17 GMT</pubDate></item><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Mon, 12 Mar 2007 11:45:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Du kannst dir doch bei WM_MOUSEMOVE auf dieselbe Art und Weise die aktuelle Endposition merken, wie die Startposition bei WM_LBUTTONDOWN.</p>
</blockquote>
<p>bei LButtondown muss ich mir doch die Startkoordinaten des Rechtecks merken, oder etwa nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243905</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Mon, 12 Mar 2007 11:45:13 GMT</pubDate></item><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Mon, 12 Mar 2007 13:02:26 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Bard00 schrieb:</p>
<blockquote>
<p>Darf man nur bei WM_PAINT malen?</p>
</blockquote>
<p>Ja.</p>
</blockquote>
<p>Warum macht es MS in dem Beispiel anders?</p>
<p><a href="http://msdn2.microsoft.com/en-us/library/ms536133.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms536133.aspx</a></p>
<pre><code class="language-cpp">case WM_MOUSEMOVE: 

            // Draw a target rectangle or drag the bitmap rectangle, 
            // depending on the status of the fDragRect flag. 

            if ((wParam &amp;&amp; MK_LBUTTON) 
                    &amp;&amp; !fDragRect) 
            {
                // Set the mix mode so that the pen color is the 
                // inverse of the background color. The previous 
                // rectangle can then be erased by drawing 
                // another rectangle on top of it. 

                hdc = GetDC(hwnd); 
                SetROP2(hdc, R2_NOTXORPEN); 

                // If a previous target rectangle exists, erase 
                // it by drawing another rectangle on top of it. 

                if (!IsRectEmpty(&amp;rcTarget)) 
                { 
                    Rectangle(hdc, rcTarget.left, rcTarget.top, 
                        rcTarget.right, rcTarget.bottom); 
                } 

                // Save the coordinates of the target rectangle. Avoid 
                // invalid rectangles by ensuring that the value of 
                // the left coordinate is greater than that of the 
                // right coordinate, and that the value of the bottom
                // coordinate is greater than that of the top.

                if ((pt.x &lt; (LONG) LOWORD(lParam)) &amp;&amp; 
                        (pt.y &gt; (LONG) HIWORD(lParam))) 
                {
                    SetRect(&amp;rcTarget, pt.x, HIWORD(lParam), 
                        LOWORD(lParam), pt.y); 
                }
                else if ((pt.x &gt; (LONG) LOWORD(lParam)) &amp;&amp; 
                        (pt.y &gt; (LONG) HIWORD(lParam))) 
                {
                    SetRect(&amp;rcTarget, LOWORD(lParam), 
                        HIWORD(lParam), pt.x, pt.y); 
                }
                else if ((pt.x &gt; (LONG) LOWORD(lParam)) &amp;&amp; 
                        (pt.y &lt; (LONG) HIWORD(lParam))) 
                { 
                    SetRect(&amp;rcTarget, LOWORD(lParam), pt.y, 
                        pt.x, HIWORD(lParam)); 
                }
                else 
                {
                    SetRect(&amp;rcTarget, pt.x, pt.y, LOWORD(lParam), 
                        HIWORD(lParam)); 
                }

                // Draw the new target rectangle. 

                Rectangle(hdc, rcTarget.left, rcTarget.top, 
                    rcTarget.right, rcTarget.bottom); 
                ReleaseDC(hwnd, hdc); 
            }
</code></pre>
<p><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="😕"
    /> <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/1243960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243960</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Mon, 12 Mar 2007 13:02:26 GMT</pubDate></item><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Mon, 12 Mar 2007 13:14:34 GMT]]></title><description><![CDATA[<p>Du kannst auch außerhalb der WM_PAINT malen, nur sendet Windows gerne WM_PAINT-Nachrichten (z.B. wenn ein anderes Fenster über dein Fenster gezogen wird, sich die Fenstergröße ändert, etc.) und WM_ERASEBKGND-Nachrichten.</p>
<p>D.h.: Wenn du außerhalb von WM_PAINT zeichnest verschwindet sehr wahrscheinlich dein Auswahlrahmen wenn WM_PAINT/WM_ERASEBKGND an dein Fenster geschickt wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243965</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Mon, 12 Mar 2007 13:14:34 GMT</pubDate></item><item><title><![CDATA[Reply to Auswahlrahmen mit Win32-API-Mitteln erstellen on Sun, 18 Mar 2007 21:16:31 GMT]]></title><description><![CDATA[<p>Hast du x_Start und y_Start als &quot;static int&quot; oder alternativ global definiert?<br />
Wenn nein, dann verliert die Funktion den Wert, wenn die Maus bewegt wird.</p>
<p>Bard00 schrieb:</p>
<blockquote>
<p>Da es in meinem vorherigen Thread (<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-175423.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-175423.html</a>) zu allgemein war, nöchte ich jetzt direkt fragen wie man so einen Auswahlrahnem (ist das überhaupt der richtige Name, wenn nicht wie heißt das überhaupt richtig?) nit Win32-API Mitteln erstellt.</p>
<p>Bisher habe ich folgendes:</p>
<pre><code class="language-cpp">case WM_LBUTTONDOWN:
			// aktuelle Mausposition ermitteln
        		x = LOWORD(lParam);
			y = HIWORD(lParam);

			x_Start = x;
			y_Start = y;

			isDrawing = true;

	 break;
</code></pre>
<p>damit merke ich mir den Startpunkt. So, dann behandel ich die WM_MOUSEMOVE Message:</p>
<pre><code class="language-cpp">case WM_MOUSEMOVE :
if (isDrawing) // Rechteck wird gewähk und wird gezeihnet
{				

    SelectObject(hDC, Brush);
    SelectObject(hDC, Pen);	
			
    x = LOWORD(lParam);
    y = HIWORD(lParam);

    Rectangle(hDC, x_Start, y_Start, x * Programminfo.Raster, y * Programminfo.Raster / 2);
}
break;
</code></pre>
<pre><code class="language-cpp">case WM_LBUTTONUP :
    isDrawing = false;
    break;
</code></pre>
<p>Meine Pen habe ich mit</p>
<pre><code class="language-cpp">Pen = CreatePen(PS_DASH,1,RGB(255,255,255));
</code></pre>
<p>erstellt, damit der unterbrochene Stricheffekt erzeugt wird. Nur wird nirgends das Rechteck gezeichnet. Als Nob in Win32-API Programmierung stehe ich grad völlig auf dem Schlauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Hat jemand von Euch einen Tipp oder kann mir sagen wie dieses Auswahl-Dinges überhaupt richtig heißt, damit ich bei google was dazu finde?</p>
<p>Danke.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1248019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248019</guid><dc:creator><![CDATA[bamatom]]></dc:creator><pubDate>Sun, 18 Mar 2007 21:16:31 GMT</pubDate></item></channel></rss>