<?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[Programm beendet sich nach SetWindowText() Aufruf]]></title><description><![CDATA[<p>Moin,</p>
<p>ich wollte verhindern, dass User was anderes als 0,1,2,3 eingeben können.<br />
Ich hatte mir folgendes überlegt:</p>
<pre><code class="language-cpp">case WM_COMMAND:
		char buffer[6];

		if(LOWORD (wParam)==ID_EDIT_OLENGTH)
			if(HIWORD (wParam)==EN_CHANGE)
			{
				GetWindowText((HWND)lParam,buffer,6);
				int iLength=GetWindowTextLength((HWND)lParam);
				if(!(buffer[iLength-1]=='0'||buffer[iLength-1]=='1'||buffer[iLength-1]=='2'||buffer[iLength-1]=='3'))
				{
					SetWindowText((HWND)lParam,buffer);
				}
				return 0;
			}
</code></pre>
<p>Immer wenn der User ein Zeichen eingibt, dass nicht erlaubt ist soll es gelöscht werden und der String ohne das falsche Zeichen wieder in die Editbox geschrieben werden. Allerdings beendet sich das Programm immer, wenn SetWindowText aufgerufen wird. Was mache ich falsche??</p>
<p>Danke im voraus<br />
Lupus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/76508/programm-beendet-sich-nach-setwindowtext-aufruf</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 11:43:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/76508.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Jun 2004 12:09:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm beendet sich nach SetWindowText() Aufruf on Sat, 12 Jun 2004 12:09:02 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>ich wollte verhindern, dass User was anderes als 0,1,2,3 eingeben können.<br />
Ich hatte mir folgendes überlegt:</p>
<pre><code class="language-cpp">case WM_COMMAND:
		char buffer[6];

		if(LOWORD (wParam)==ID_EDIT_OLENGTH)
			if(HIWORD (wParam)==EN_CHANGE)
			{
				GetWindowText((HWND)lParam,buffer,6);
				int iLength=GetWindowTextLength((HWND)lParam);
				if(!(buffer[iLength-1]=='0'||buffer[iLength-1]=='1'||buffer[iLength-1]=='2'||buffer[iLength-1]=='3'))
				{
					SetWindowText((HWND)lParam,buffer);
				}
				return 0;
			}
</code></pre>
<p>Immer wenn der User ein Zeichen eingibt, dass nicht erlaubt ist soll es gelöscht werden und der String ohne das falsche Zeichen wieder in die Editbox geschrieben werden. Allerdings beendet sich das Programm immer, wenn SetWindowText aufgerufen wird. Was mache ich falsche??</p>
<p>Danke im voraus<br />
Lupus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/538544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/538544</guid><dc:creator><![CDATA[Lupus]]></dc:creator><pubDate>Sat, 12 Jun 2004 12:09:02 GMT</pubDate></item><item><title><![CDATA[Reply to Programm beendet sich nach SetWindowText() Aufruf on Sat, 12 Jun 2004 12:25:36 GMT]]></title><description><![CDATA[<p>Was sagt der Debugger?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/538551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/538551</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Sat, 12 Jun 2004 12:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to Programm beendet sich nach SetWindowText() Aufruf on Sat, 12 Jun 2004 12:55:16 GMT]]></title><description><![CDATA[<p>Ich habe es hin bekommen, ich hatte vergessen, wenn ich das Zeichen lösche, nur noch '\0' im buffer steht und dass ich diesen Fall nicht berücktsichtigt habe. Dadurch, dass \0 in meiner Abfrage fehlte hatte ich eine Endlosschleife produziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/538570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/538570</guid><dc:creator><![CDATA[Lupus]]></dc:creator><pubDate>Sat, 12 Jun 2004 12:55:16 GMT</pubDate></item></channel></rss>