<?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[Funktion für Editfeld]]></title><description><![CDATA[<pre><code class="language-cpp">BOOL edit_addtext(HWND hWnd, LPCTSTR lpText)
{
   DWORD dwStart = 0, dwEnd = 0;
   int nLen;

   nLen = GetWindowTextLength(IDC_EDIT1);
   SendMessage(hWnd, EM_GETSEL, (WPARAM)&amp;dwStart, (LPARAM)&amp;dwEnd);
   SendMessage(hWnd, EM_SETSEL, (WPARAM)nLen, (LPARAM)nLen);
   SendMessage(hWnd, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)lpText);
   SendMessage(hWnd, EM_SETSEL, (WPARAM)dwStart, (LPARAM)dwEnd);

   return(TRUE);
}
</code></pre>
<p>Hey, habe hier die Funktion von einer WinAPI Seite.<br />
Ich weiß was die Funktion machen soll, aber verstehe irgenwie nicht wie, also die 4 SendMessage Zeilen.</p>
<p>Die Funktion schreibt ja einen ihr übergebenen Text in ein Edit feld.</p>
<p>Aber wie genau funktioniert das? was genau ist LPCTSTR? WinAPI String?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170581/funktion-für-editfeld</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 22:33:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170581.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Jan 2007 16:00:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion für Editfeld on Wed, 17 Jan 2007 16:00:57 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">BOOL edit_addtext(HWND hWnd, LPCTSTR lpText)
{
   DWORD dwStart = 0, dwEnd = 0;
   int nLen;

   nLen = GetWindowTextLength(IDC_EDIT1);
   SendMessage(hWnd, EM_GETSEL, (WPARAM)&amp;dwStart, (LPARAM)&amp;dwEnd);
   SendMessage(hWnd, EM_SETSEL, (WPARAM)nLen, (LPARAM)nLen);
   SendMessage(hWnd, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)lpText);
   SendMessage(hWnd, EM_SETSEL, (WPARAM)dwStart, (LPARAM)dwEnd);

   return(TRUE);
}
</code></pre>
<p>Hey, habe hier die Funktion von einer WinAPI Seite.<br />
Ich weiß was die Funktion machen soll, aber verstehe irgenwie nicht wie, also die 4 SendMessage Zeilen.</p>
<p>Die Funktion schreibt ja einen ihr übergebenen Text in ein Edit feld.</p>
<p>Aber wie genau funktioniert das? was genau ist LPCTSTR? WinAPI String?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211476</guid><dc:creator><![CDATA[mazeli]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:00:57 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion für Editfeld on Wed, 17 Jan 2007 17:57:03 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool edit_addtext(HWND     hWnd, // HWND deines Edit-Controls
                  LPCTSTR  lpText = _T(&quot;Test&quot;)) // Text der eingefügt werden soll. LPCTSTR ist ein const TCHAR* d.h. bei UNICODE ein const wchar_t* und sonnst ein const char*
{
    if (hWnd == NULL || lpText == NULL) // Sind die übergebenen Parameter in Ordnung?
        return false;

    DWORD dwStart = 0; // Anfang des vorher ausgewählten Bereichs
    DWORD dwEnd   = 0;   // Ende des vorher ausgewählten Bereichs
    int   nLen    = GetWindowTextLength(hWnd); // Länge des Textes holen, der momentan im Edit(hWnd) steht; wobei IDC_EDIT1 falsch war ... muss auch hWnd sein ...
    SendMessage(hWnd, EM_GETSEL, (WPARAM)&amp;dwStart, (LPARAM)&amp;dwEnd); // Holt halt den momentan ausgewählten Bereich
    SendMessage(hWnd, EM_SETSEL, (WPARAM)nLen, (LPARAM)nLen); // Springt ans Ende des Textes der in der EditBox steht.
    SendMessage(hWnd, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)lpText); // Fügt dort deinen Text an. Hier durch Replace-Trick 
    SendMessage(hWnd, EM_SETSEL, (WPARAM)dwStart, (LPARAM)dwEnd); // Setzt wieder die alte Makierung, die durch das 1. EM_SETSEL aufgehoben wurde...
    return true;
}
</code></pre>
<p>Eigentlich müsste man noch gucken ob die SendMessage-Aufrufe fehlschlagen.... falls das der Fall sein sollte müsste man auch false zurückgeben ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211553</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 17 Jan 2007 17:57:03 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion für Editfeld on Wed, 17 Jan 2007 18:16:42 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// ...
    if (hWnd == NULL || lpText == NULL) // Sind die übergebenen Parameter in Ordnung?
        return false;
// ...
</code></pre>
</blockquote>
<p>Dann besser:</p>
<pre><code class="language-cpp">if(!IsWindow(hWnd) || lpText == NULL)
   return (false);
</code></pre>
<p><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=";)"
      alt="😉"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211564</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 17 Jan 2007 18:16:42 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion für Editfeld on Thu, 18 Jan 2007 01:28:24 GMT]]></title><description><![CDATA[<p>EM_SETSEL und EM_REPLACESEL haben aber garkeinen Returnwert, und EM_GETSEL keinen &quot;error return&quot;, also kann man da garnix prüfen <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=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211705</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 18 Jan 2007 01:28:24 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion für Editfeld on Sun, 11 Nov 2007 11:34:34 GMT]]></title><description><![CDATA[<p>Und wie mache ich das so das er den Text immer in eine neue Zeile verschiebt wird, sodass der aktuelle text oben steht und der alte text eine Zeile tiefer??</p>
<p>Also wie ich den aktuellen text vor den alten Text schreibe, weiß ich:</p>
<pre><code>SendMessage (hWndEdit, EM_REPLACESEL, (WPARAM) FALSE, (LPARAM) lpText);
    SendMessage (hWndEdit, EM_SETSEL, (WPARAM) dwStart, (LPARAM) dwEnd);
</code></pre>
<p>Da steht der text aber direkt zusammen ohne Leerzeichen und so^^<br />
Mit welcher Message mache ich es, dass der alte text noch eine zeile tiefer geht???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401260</guid><dc:creator><![CDATA[RebornX]]></dc:creator><pubDate>Sun, 11 Nov 2007 11:34:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion für Editfeld on Sun, 11 Nov 2007 12:16:03 GMT]]></title><description><![CDATA[<p>gar nicht -.-</p>
<p>füg einfach am Ende deiner Zeichenkette ein &quot;\n&quot; an.<br />
Im Zweifelsfalle kann es auch &quot;\r\n&quot; sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401287</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Sun, 11 Nov 2007 12:16:03 GMT</pubDate></item></channel></rss>