<?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[EN_KILLFOCUS beim Beenden eines Dialogs]]></title><description><![CDATA[<p>Hi!<br />
Ich frage bei einem CEdit in einem Dialog die Nachricht EN_KILLFOCUS ab, um zu checken, das der User korrekt ausgefüllt hat. Wenn nicht, ploppt eine MessageBox hoch.<br />
Dummerweise kommt EN_KILLFOCUS auch beim Beenden des Dialogs (irgendwie ja auch klar).<br />
Frage: Wie kann ich eine zusätzliche Bedingung einbauen, damit beim Beenden nicht jedesmal eine Warnung wegen falschen Einträgen im Edit kommt?</p>
<p>Thx schonmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Gruß T.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/70314/en_killfocus-beim-beenden-eines-dialogs</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 08:55:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/70314.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Apr 2004 14:14:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to EN_KILLFOCUS beim Beenden eines Dialogs on Tue, 06 Apr 2004 14:14:55 GMT]]></title><description><![CDATA[<p>Hi!<br />
Ich frage bei einem CEdit in einem Dialog die Nachricht EN_KILLFOCUS ab, um zu checken, das der User korrekt ausgefüllt hat. Wenn nicht, ploppt eine MessageBox hoch.<br />
Dummerweise kommt EN_KILLFOCUS auch beim Beenden des Dialogs (irgendwie ja auch klar).<br />
Frage: Wie kann ich eine zusätzliche Bedingung einbauen, damit beim Beenden nicht jedesmal eine Warnung wegen falschen Einträgen im Edit kommt?</p>
<p>Thx schonmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Gruß T.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/496305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/496305</guid><dc:creator><![CDATA[Theo]]></dc:creator><pubDate>Tue, 06 Apr 2004 14:14:55 GMT</pubDate></item><item><title><![CDATA[Reply to EN_KILLFOCUS beim Beenden eines Dialogs on Tue, 06 Apr 2004 15:56:20 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Würde es da nicht reichen, eine Variable abzufragen die beim schließen des Dialoges auf einen bestimmten Wert gesetzt wird</p>
<pre><code class="language-cpp">if (!close)
 // Fenster wird nicht geschlossen
else
 // Fester wird geschlossen
</code></pre>
<p>Du muß nur jede Möglichkeit zum Schlißen des Dialoges abfangen und die Variable setzen und nicht vergessen die Variable beim Öffnen des Dialoges zu initialisieren.</p>
<p>Hoffe es hilft Dir weiter.</p>
<p>Oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/496379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/496379</guid><dc:creator><![CDATA[Oli_1977]]></dc:creator><pubDate>Tue, 06 Apr 2004 15:56:20 GMT</pubDate></item><item><title><![CDATA[Reply to EN_KILLFOCUS beim Beenden eines Dialogs on Tue, 06 Apr 2004 19:44:48 GMT]]></title><description><![CDATA[<p>So langsam frage ich mich, ob EN_KILLFOCUS überhaupt die richtige Message ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Denn EN_KILLFOCUS kommt natürlich ja auch, wenn man einfach mal neben das Programm auf den Desktop klickt. Das kann es irgendwie ja nicht sein...<br />
Sonst bleibt mir wohl nur, die Variablen vor dem Eintrag in die DB zu überprüfen, mal sehen...</p>
<p>Gruß T.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/496499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/496499</guid><dc:creator><![CDATA[Theo]]></dc:creator><pubDate>Tue, 06 Apr 2004 19:44:48 GMT</pubDate></item><item><title><![CDATA[Reply to EN_KILLFOCUS beim Beenden eines Dialogs on Wed, 07 Apr 2004 08:53:12 GMT]]></title><description><![CDATA[<p>Hihi,</p>
<p>genau das gleiche Problem hab ich auch. Allerdings mich noch nicht weiter mit beschäftigt da mein Formular noch nicht fertig ist. Aber wenn man den Dialog beendet und was falsches in einem Edit steht, dann hängt man in einer Schleife, weil die KillFocus Funktion andauernd wieder ausgeführt wird.</p>
<p>kann man denn nicht beim beenden einfach die EN_KILLFOCUS Message wegschmeissen? Das werd ich mal versuchen, dann bräuchte man nur beim beenden des Dialogs eine BOOL-Var setzen die dann in der PreTranslateMessage abgefragt wird, wenn die Message denn gepostet wird..</p>
<p>mal gucken..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/496690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/496690</guid><dc:creator><![CDATA[Tow-B.de]]></dc:creator><pubDate>Wed, 07 Apr 2004 08:53:12 GMT</pubDate></item><item><title><![CDATA[Reply to EN_KILLFOCUS beim Beenden eines Dialogs on Wed, 07 Apr 2004 09:42:55 GMT]]></title><description><![CDATA[<p>Okay,</p>
<p>nach kurzem Studium der MSDN bin ich auf folgendes gekommen:</p>
<p>PreTranslateMessage geht natürlich nicht <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="😃"
    /> Weil die Nachricht direkt an die WindowProc geschickt wird. Da EN_KILLFOCUS eine WM_COMMAND message ist bleiben uns also noch die WindowProc() und die onCommand() Funktion in der wir die Nachricht abfangen können.<br />
Da ich nicht weiss ob/wie ich in der OnCommand-Funktion die Msg verändere, man hat ja nur die Parameter wParam und lParam, habe ich die WindowProc() benutzt.</p>
<pre><code>if(bDlgEnded)  // Schaltervariable prüfen
		if(message == WM_COMMAND)
			if(HIWORD(wParam) == EN_KILLFOCUS)
				message = 0;

	return CDialog::WindowProc(message, wParam, lParam);
</code></pre>
<p>Damit klappt es bei mir auf jeden Fall. Ob es noch schönere/bessere alternativen gibt weiss ich nicht. Wär aber dankbar für Infos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/496745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/496745</guid><dc:creator><![CDATA[Tow-B.de]]></dc:creator><pubDate>Wed, 07 Apr 2004 09:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to EN_KILLFOCUS beim Beenden eines Dialogs on Wed, 07 Apr 2004 10:37:30 GMT]]></title><description><![CDATA[<p>Hm, ich glaube das funzt so nicht...<br />
Zu welchem Zeitpunkt soll denn Deine BOOL gesetzt werden? Beim Beenden?<br />
Sobald Du per Maus irgendwelche Buttons zum Beenden drückst, kommt zuerst nochmal EN_KILLFOCUS dran. <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="😉"
    /><br />
Das gilt für JEDE Aktion mit der Maus die nicht das Edit betrifft. EN_KILLFOCUS kommt also auch bei anderen Gelegenheiten, z.B. wenn man neben den Dialog auf den Desktop klickt...<br />
Trotzdem erstmal danke für Deinen Vorschlag, ich muss mir nochmal irgendwie etwas Anderes zur Kontrolle der Edits einfallen lassen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Gruß T.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/496792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/496792</guid><dc:creator><![CDATA[Theo]]></dc:creator><pubDate>Wed, 07 Apr 2004 10:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to EN_KILLFOCUS beim Beenden eines Dialogs on Wed, 07 Apr 2004 11:20:33 GMT]]></title><description><![CDATA[<p>Ja, da hast du Recht.</p>
<p>Allerdings find ich das auch ganz sinnvoll. In dem Moment wo du irgendwohin klickst geht der Focus der edits doch auch verloren. Wenn ich in ein anderes Fenster klicke verlasse ich das Edit. Bzw. kann ich ja beim wiederanklicken des Dialogs direkt ein anderes Edit auswählen.</p>
<p>Ich finde das eigentlich ganz sinnvoll. Nur bei OnClose() soll er halt nicht mehr überprüfen. Ich habe im Konstruktor die BOOL-Var auf false gesetzt, den Dialog modal geöffnet und bei OnClose() dann die Var auf true.</p>
<p>Aber wenn er bei dir beim Fenster verlassen nicht nachfragen soll musst du die Überprüfungen wohl am besten komplett am Ende überprüfen lassen, oder sowas..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/496825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/496825</guid><dc:creator><![CDATA[Tow-B.de]]></dc:creator><pubDate>Wed, 07 Apr 2004 11:20:33 GMT</pubDate></item></channel></rss>