<?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[Text, der dazugekommen ist, in einem RichEditControl auswählen.]]></title><description><![CDATA[<p>Hallo,<br />
ich probiere schon seit Stunden hier rum und komme nicht darauf: Ich schreibe etwas im RichEditControl Fenster und wenn ich auf &lt;Enter&gt; drücke, soll der hinzugekommene Text ausgewählt werden.<br />
Also immer der Text zwischen zwei &lt;Enter&gt; Tastenanschlägen.<br />
Mein Versuch, um mir die Selektierung anzusehen, sieht so aus:</p>
<pre><code class="language-cpp">LRESULT CALLBACK EditProc(HWND hWnd, UINT umsg, WPARAM wParam, LPARAM lParam)
{
	switch (umsg)
	{	
		case WM_KEYUP:
			if ( (int)wParam == 13 ) // Enter wurde gedrückt
			{

				SendMessage(hEdit, EM_SETSEL, (WPARAM)pos, (LPARAM)-1); // markieren
				Sleep(1000);
				pos = GetWindowTextLength(hEdit);
				SendMessage(hEdit, EM_SETSEL, (WPARAM)pos, (LPARAM)pos); // Markierung rückgängig machen.
			}

	}

	return CallWindowProc ((WNDPROC )WndProcMain,hWnd,umsg,wParam,lParam);
}
</code></pre>
<p>Dabei ist pos außerhalb der Callbackschleife definiert. Das RichEditControl ist gesubclasst, oder wie man sagt.<br />
Mein Problem ist nun, das zwar Text ausgewählt wird, aber: nur in der ersten Zeile so wie es sein soll. Ab der zweiten Zeile wird ein Buchstabe weniger ausgewählt, ab der dritten Zeile werden zwei Buchstaben weniger ausgewählt, usw...<br />
Es ist zum Haare raufen.<br />
<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 />
Was mache ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/236418/text-der-dazugekommen-ist-in-einem-richeditcontrol-auswählen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 18:38:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/236418.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Mar 2009 20:44:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Text, der dazugekommen ist, in einem RichEditControl auswählen. on Sat, 14 Mar 2009 20:44:31 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich probiere schon seit Stunden hier rum und komme nicht darauf: Ich schreibe etwas im RichEditControl Fenster und wenn ich auf &lt;Enter&gt; drücke, soll der hinzugekommene Text ausgewählt werden.<br />
Also immer der Text zwischen zwei &lt;Enter&gt; Tastenanschlägen.<br />
Mein Versuch, um mir die Selektierung anzusehen, sieht so aus:</p>
<pre><code class="language-cpp">LRESULT CALLBACK EditProc(HWND hWnd, UINT umsg, WPARAM wParam, LPARAM lParam)
{
	switch (umsg)
	{	
		case WM_KEYUP:
			if ( (int)wParam == 13 ) // Enter wurde gedrückt
			{

				SendMessage(hEdit, EM_SETSEL, (WPARAM)pos, (LPARAM)-1); // markieren
				Sleep(1000);
				pos = GetWindowTextLength(hEdit);
				SendMessage(hEdit, EM_SETSEL, (WPARAM)pos, (LPARAM)pos); // Markierung rückgängig machen.
			}

	}

	return CallWindowProc ((WNDPROC )WndProcMain,hWnd,umsg,wParam,lParam);
}
</code></pre>
<p>Dabei ist pos außerhalb der Callbackschleife definiert. Das RichEditControl ist gesubclasst, oder wie man sagt.<br />
Mein Problem ist nun, das zwar Text ausgewählt wird, aber: nur in der ersten Zeile so wie es sein soll. Ab der zweiten Zeile wird ein Buchstabe weniger ausgewählt, ab der dritten Zeile werden zwei Buchstaben weniger ausgewählt, usw...<br />
Es ist zum Haare raufen.<br />
<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 />
Was mache ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680079</guid><dc:creator><![CDATA[winapi scientist]]></dc:creator><pubDate>Sat, 14 Mar 2009 20:44:31 GMT</pubDate></item><item><title><![CDATA[Reply to Text, der dazugekommen ist, in einem RichEditControl auswählen. on Sun, 15 Mar 2009 09:02:16 GMT]]></title><description><![CDATA[<p>siehe titel <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/1680232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680232</guid><dc:creator><![CDATA[winapi scientist]]></dc:creator><pubDate>Sun, 15 Mar 2009 09:02:16 GMT</pubDate></item><item><title><![CDATA[Reply to Text, der dazugekommen ist, in einem RichEditControl auswählen. on Mon, 16 Mar 2009 07:13:41 GMT]]></title><description><![CDATA[<p>Und wie bitte hast Du Deine pos ausgerechnet?<br />
Sieht ganz so aus, als ob Du die Zeilenschaltungem mit CR/LF als nur ein Zeichen berücksichtigst.</p>
<p>BTW:<br />
1. Warum reagierst Du auf Keyup. Bei Tastatureingaben reagiert man auf Keydown... Evtl. ist mit dem Keydown un VK_ENTER jetzt auch schon eine neue Zeile eingefügt worden. Wie verhinderst Du das?<br />
2. Ist das finaler Code mit dem Sleep. Ich halte esnicht für schön das Dein Programm eine Sekunde lang einfriert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680660</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 16 Mar 2009 07:13:41 GMT</pubDate></item><item><title><![CDATA[Reply to Text, der dazugekommen ist, in einem RichEditControl auswählen. on Mon, 16 Mar 2009 12:42:08 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich speichere jetzt die Positionen der \r - Zeichen, die nach jedem Betätigen einer Enter-Taste vom RichEditControl eingefügt werden.<br />
Das Sleep dient nur dazu, mir die Auswahl anzuzeigen, ist bloß zu Testzwecken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1680804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680804</guid><dc:creator><![CDATA[winapi scientist]]></dc:creator><pubDate>Mon, 16 Mar 2009 12:42:08 GMT</pubDate></item></channel></rss>