<?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[Edits um Rects zu bearbeiten]]></title><description><![CDATA[<p>Hallo Forum!</p>
<p>Ich versuch schon seit langem einen Editor zu schreiben, mit dem man jedem von ein paar Bildern zwei Rects zuweisen kann.</p>
<p>Mein Ansatz:</p>
<p>Man kann aus einer ListBox die verschiedenen Bilder auswählen. Jedes Bild hat seine eigenen 2*4 Rects ( also 2*4<em>BILDER_ANZAHL )<br />
Es gibt aber insgesamt bloß 2</em>4 Edits.</p>
<p>Deshalb mach ich es so:</p>
<p>Wenn der Benutzer den Text eines Edits verändert, speichert er die Eingabe in den Rects.</p>
<p>Code zum Speichern der Edit-Eingaben in den Rects.</p>
<pre><code class="language-cpp">void SetEditsToRects()
{
 const int iSpriteIndex = SendMessage( m_hListBox, LB_SELGET, 0, 0 );

 for( int i = 0; i &lt; 2; i++ )
 {
  for( int j = 0; j &lt; 4; j++ )
  {
   char text[10];
   GetWindowText( m_hEdits[i][j], text, 10 );
   *( &amp;m_rcRects[i][iSpriteIndex].left + j ) = atoi( text );
  }
 }
}
</code></pre>
<p>Code im WindowHandle, der die Funktion aufruft, sobald der Benutzer den Text eines Edits verändert</p>
<pre><code class="language-cpp">case RECT_EDITS:
       SetEditsToRects();
       break;
</code></pre>
<p>Wenn der Benutzer ein anderes Bild aus der Liste auswählt, wird der Text der Edits den Rects angepasst.</p>
<p>Code zum Übertragen der Rect-Daten in die Edits</p>
<pre><code class="language-cpp">void SetRectsToEdits()
{
 const int iSpriteIndex = SendMessage( m_hListBox, LB_SELGET, 0, 0 );

 for( int i = 0; i &lt; 2; i++ )
 {
  for( int j = 0; j &lt; 4; j++ )
  {
   char text[10];
   sprintf( text, &quot;%d&quot;, *( &amp;m_rcRects[i][iSpriteIndex].left + j ) );
   SendMessage( m_hEdits[i][j], WM_SETTEXT, 0, (LONG) text );
  }
 }
}
</code></pre>
<p>Code im WindowHandle, der die Funktion aufruft, sobald</p>
<pre><code class="language-cpp">case RECT_LISTBOX:
       SetRectsToEdits();
       break;
</code></pre>
<p>Was dabei nicht funktioniert:</p>
<p>Wenn man ein anderes Bild aus der Liste auswählt, sollen die Daten der Rechtecke auf die Edits übertragen werden sollen.<br />
Das funktioniert aber irgendwie nicht bei allen Edits, sondern nur beim ersten.</p>
<p>Das Komische ist:</p>
<p>Wenn ich einen vorgegebenen Text verwend, funktionierts bei allen Rects.<br />
Wenn ich die Reihenfolge der for-Schleifen ändere, z.B.:</p>
<pre><code class="language-cpp">for( j = 4; j &lt;= 0; j-- )
</code></pre>
<p>Wird der Text nur bei dem geändert, der zuerst die Message erhält.</p>
<p>Zusammenfassend kann man also sagen, es liegt entweder daran, dass SendMessage nur beim ersten mal funktioniert, oder dass irgendwas mit dem sprintf nicht stimmt.</p>
<p>Kann sich hier einer vorstellen woran es liegt</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140662/edits-um-rects-zu-bearbeiten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 08:40:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140662.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Mar 2006 13:23:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Edits um Rects zu bearbeiten on Thu, 16 Mar 2006 13:24:27 GMT]]></title><description><![CDATA[<p>Hallo Forum!</p>
<p>Ich versuch schon seit langem einen Editor zu schreiben, mit dem man jedem von ein paar Bildern zwei Rects zuweisen kann.</p>
<p>Mein Ansatz:</p>
<p>Man kann aus einer ListBox die verschiedenen Bilder auswählen. Jedes Bild hat seine eigenen 2*4 Rects ( also 2*4<em>BILDER_ANZAHL )<br />
Es gibt aber insgesamt bloß 2</em>4 Edits.</p>
<p>Deshalb mach ich es so:</p>
<p>Wenn der Benutzer den Text eines Edits verändert, speichert er die Eingabe in den Rects.</p>
<p>Code zum Speichern der Edit-Eingaben in den Rects.</p>
<pre><code class="language-cpp">void SetEditsToRects()
{
 const int iSpriteIndex = SendMessage( m_hListBox, LB_SELGET, 0, 0 );

 for( int i = 0; i &lt; 2; i++ )
 {
  for( int j = 0; j &lt; 4; j++ )
  {
   char text[10];
   GetWindowText( m_hEdits[i][j], text, 10 );
   *( &amp;m_rcRects[i][iSpriteIndex].left + j ) = atoi( text );
  }
 }
}
</code></pre>
<p>Code im WindowHandle, der die Funktion aufruft, sobald der Benutzer den Text eines Edits verändert</p>
<pre><code class="language-cpp">case RECT_EDITS:
       SetEditsToRects();
       break;
</code></pre>
<p>Wenn der Benutzer ein anderes Bild aus der Liste auswählt, wird der Text der Edits den Rects angepasst.</p>
<p>Code zum Übertragen der Rect-Daten in die Edits</p>
<pre><code class="language-cpp">void SetRectsToEdits()
{
 const int iSpriteIndex = SendMessage( m_hListBox, LB_SELGET, 0, 0 );

 for( int i = 0; i &lt; 2; i++ )
 {
  for( int j = 0; j &lt; 4; j++ )
  {
   char text[10];
   sprintf( text, &quot;%d&quot;, *( &amp;m_rcRects[i][iSpriteIndex].left + j ) );
   SendMessage( m_hEdits[i][j], WM_SETTEXT, 0, (LONG) text );
  }
 }
}
</code></pre>
<p>Code im WindowHandle, der die Funktion aufruft, sobald</p>
<pre><code class="language-cpp">case RECT_LISTBOX:
       SetRectsToEdits();
       break;
</code></pre>
<p>Was dabei nicht funktioniert:</p>
<p>Wenn man ein anderes Bild aus der Liste auswählt, sollen die Daten der Rechtecke auf die Edits übertragen werden sollen.<br />
Das funktioniert aber irgendwie nicht bei allen Edits, sondern nur beim ersten.</p>
<p>Das Komische ist:</p>
<p>Wenn ich einen vorgegebenen Text verwend, funktionierts bei allen Rects.<br />
Wenn ich die Reihenfolge der for-Schleifen ändere, z.B.:</p>
<pre><code class="language-cpp">for( j = 4; j &lt;= 0; j-- )
</code></pre>
<p>Wird der Text nur bei dem geändert, der zuerst die Message erhält.</p>
<p>Zusammenfassend kann man also sagen, es liegt entweder daran, dass SendMessage nur beim ersten mal funktioniert, oder dass irgendwas mit dem sprintf nicht stimmt.</p>
<p>Kann sich hier einer vorstellen woran es liegt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017518</guid><dc:creator><![CDATA[Gap]]></dc:creator><pubDate>Thu, 16 Mar 2006 13:24:27 GMT</pubDate></item><item><title><![CDATA[Reply to Edits um Rects zu bearbeiten on Thu, 16 Mar 2006 16:51:12 GMT]]></title><description><![CDATA[<p>Für mich sieht das hier etwas komisch aus:</p>
<pre><code class="language-cpp">*( &amp;m_rcRects[i][iSpriteIndex].left + j )
</code></pre>
<p>was genau denkst du da zu adressieren, dadurch, dass du j hinzuaddierst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017716</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 16 Mar 2006 16:51:12 GMT</pubDate></item><item><title><![CDATA[Reply to Edits um Rects zu bearbeiten on Sat, 18 Mar 2006 19:27:57 GMT]]></title><description><![CDATA[<p>Das ist dafuer da, um der Reihe nach left, top, right und bottom zu kriegen.</p>
<p>Habs jetzt eh Gelöst:</p>
<p>Es lag daran dass</p>
<pre><code>SendMessage( m_hEdits[i][j], WM_SETTEXT, 0, (LONG) text )
</code></pre>
<p>wiederum RECT_EDITS auslöst, was dann die Rects an den Text anpasst.</p>
<p>Kann man irgendwie machen, dass nur die Befehle des Benutzters dabei entfangen werden<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/1019268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019268</guid><dc:creator><![CDATA[Gap]]></dc:creator><pubDate>Sat, 18 Mar 2006 19:27:57 GMT</pubDate></item></channel></rss>