<?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[WinAPI und das Drücken von Tasten]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe mit der WinAPI zur Übung einen kleinen Code geschrieben, er soll eigentlich nur, wenn er fertig ist, so ne Art Graphikbereich haben, in dem sich ev. was bewegt, und verschiedene Buttons, mit denen man das regulieren kann.<br />
Hier ist mein Arbeitsstand: <a href="http://pastebin.co.uk/2011" rel="nofollow">http://pastebin.co.uk/2011</a><br />
Das Problem: sobald eine Taste gedrückt wird, funktioniert das beenden per Escape nicht mehr, und es kommen gar keine WM_KEYDOWN ereignisse mehr an. Kann mir jemand bitte sagen, wieso, und wie ich das ev. beheben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160439/winapi-und-das-drücken-von-tasten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Jul 2026 00:05:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160439.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Sep 2006 19:59:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Mon, 25 Sep 2006 19:59:15 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe mit der WinAPI zur Übung einen kleinen Code geschrieben, er soll eigentlich nur, wenn er fertig ist, so ne Art Graphikbereich haben, in dem sich ev. was bewegt, und verschiedene Buttons, mit denen man das regulieren kann.<br />
Hier ist mein Arbeitsstand: <a href="http://pastebin.co.uk/2011" rel="nofollow">http://pastebin.co.uk/2011</a><br />
Das Problem: sobald eine Taste gedrückt wird, funktioniert das beenden per Escape nicht mehr, und es kommen gar keine WM_KEYDOWN ereignisse mehr an. Kann mir jemand bitte sagen, wieso, und wie ich das ev. beheben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144311</guid><dc:creator><![CDATA[DaGeRe]]></dc:creator><pubDate>Mon, 25 Sep 2006 19:59:15 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 07:53:06 GMT]]></title><description><![CDATA[<p>Versteh die Frage nicht.</p>
<blockquote>
<p>sobald eine Taste gedrückt wird,...</p>
</blockquote>
<p>Auch ESC und RETURN sind Tasten. Willst Du sagen, daß überhaupt keine Taste funktioniert?</p>
<p>Ich staune allerdings, daß Dein Prog überhaupt kompiliert wird. Normalerweise sucht der Linker immer nach der Funktion WinMain, die es in Deinem Prog gar nicht gibt (Du hast nur int main). Außerdem hast Du hInstance auf NULL gesetzt, das heißt, daß Dein Programm keinen Zugriff auf das Fenster hat. Es wird zwar ein Fenster erstellt, aber das Programm kann nix damit anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144474</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Tue, 26 Sep 2006 07:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 10:57:47 GMT]]></title><description><![CDATA[<p>Hmm also so recht versteh ich dein Code auch nicht. Erstmal kann ich mein Vorredner nur zustimmen und dir Sagen das man für ein Windows-Programm (kein Windows-Konsolen-Programm) WinMain benutzt. Evtl. solltest du dir ncoh mal nen tut oder so durchlesen. Und ich glaube du solltest das mit dem Zeichnen nicht in der Nachricht von WM_PAINT machen. Male immer wenn ne Taste gedrückt wird oder in einer WM_TIMER Nachricht.</p>
<p>Zu deinem Problem ich kann mich auch irren aber ich glaube WM_PAINT wird immer gesendet wenn das Fenster neu gezeichnet wird und wenn du jetzt in der WM_PAINT Nachricht wieder was zeichnest, Muss das Fenster neu gezeichnet werden und es wird automatisch die WM_PAINT Naricht geschickt. Dort zeichnest du ja wieder was usw. also eine Art Endlosschleife</p>
<p>Aber ka ob da wirklich das Prob ist kann mich auch irren.</p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144613</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Tue, 26 Sep 2006 10:57:47 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 11:45:50 GMT]]></title><description><![CDATA[<p>schirrmie schrieb:</p>
<blockquote>
<p>Und ich glaube du solltest das mit dem Zeichnen nicht in der Nachricht von WM_PAINT machen. Male immer wenn ne Taste gedrückt wird oder in einer WM_TIMER Nachricht.</p>
<p>Zu deinem Problem ich kann mich auch irren aber ich glaube WM_PAINT wird immer gesendet wenn das Fenster neu gezeichnet wird und wenn du jetzt in der WM_PAINT Nachricht wieder was zeichnest, Muss das Fenster neu gezeichnet werden und es wird automatisch die WM_PAINT Naricht geschickt.</p>
</blockquote>
<p>Das stimmt nicht. Bei der WM_PAINT wird der Fenster<strong>HINTERGRUND</strong> neu gezeichnet. Die WM_PAINT kommt immer, wenn sich am Fenster etwas ändert, z. B. die Größe, eine Menü- oder Dialogeinblendung wird gelöscht, InvalidateRect() wird aufgerufen (d. h. das Programm erklärt den Fensterinhalt für ungültig) o. ä.. Faktisch wird dann einfach der Bereich des Menüs oder Dialogs mit dem Fensterhintergrund übermalt.<br />
Alles, was NICHT mit der WM_PAINT gezeichnet wird, wird bei der nächsten Fensteränderung gelöscht (kann manchmal auch erwünscht sein).<br />
Genau deshalb sollte man die WM_PAINT zum Zeichnen nutzen. Dann wird sozusagen alles, was durch die WM_PAINT übermalt wird, direkt danach neu gezeichnet, und der Fensterinhalt bleibt erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144643</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Tue, 26 Sep 2006 11:45:50 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 12:13:24 GMT]]></title><description><![CDATA[<p>Ja stimmt jetzt wo du es schreibst ist klar. Ist schon lange her das ich was mit GDI &amp; co gemacht habe.<br />
Naja dann noch viel Glück bei der Fehlerfindung :p</p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144694</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Tue, 26 Sep 2006 12:13:24 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 12:34:40 GMT]]></title><description><![CDATA[<p>Grundsätzlich bekommt nur das Fenster eine WM_KEYDOWN Nachricht, dass den Focus hat. Evtl. liegt hier Dein Problem. Bemühe doch mal Spy++!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144705</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 26 Sep 2006 12:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 15:52:46 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Grundsätzlich bekommt nur das Fenster eine WM_KEYDOWN Nachricht, dass den Focus hat. Evtl. liegt hier Dein Problem. Bemühe doch mal Spy++!</p>
</blockquote>
<p>Das war auch mein erster Gedanke, dass die Ereignisse an eine andere WNDProc geschickt werden, allerdings funktioniert das drücken der Buttons schon, deshalb vermute ich, dass es an etwas anderem liegt.<br />
Bei Spy++ habe ich leider nichts gefunden, nicht mal etwas kommerzielles.</p>
<p>Das ganze kompiliert, und funktioniert bis auf den Fehler eben, dass die Tasten nach dem drücken eines Buttons unerreichbar sind - an der WinMain liegt es also nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144891</guid><dc:creator><![CDATA[DaGeRe]]></dc:creator><pubDate>Tue, 26 Sep 2006 15:52:46 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 16:11:36 GMT]]></title><description><![CDATA[<p>DaGeRe schrieb:</p>
<blockquote>
<p>Bei Spy++ habe ich leider nichts gefunden, nicht mal etwas kommerzielles.<br />
nicht.</p>
</blockquote>
<p>Whaaattt?? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Aber du weißt schon was Spy++ ist, oder ?</p>
<p>DaGeRe schrieb:</p>
<blockquote>
<p>Das ganze kompiliert, und funktioniert bis auf den Fehler eben, dass die Tasten nach dem drücken eines Buttons unerreichbar sind - an der WinMain liegt es also nicht.</p>
</blockquote>
<p>Das kannste ausschließen, wenn dus mitter WinMain probiert hast, was soll das eigentlich mitter main ? Ist doch Schwachsinn...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144902</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 26 Sep 2006 16:11:36 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 16:21:48 GMT]]></title><description><![CDATA[<p>Nein, ich weiß net, was Spy++ ist, einfach<br />
<a href="http://www.google.de/search?q=Spy%2B%2B&amp;start=0&amp;ie=utf-8&amp;oe=utf-8&amp;meta=lr%3Dlang_de&amp;client=firefox-a&amp;rls=org.mozilla:de:official" rel="nofollow">http://www.google.de/search?q=Spy%2B%2B&amp;start=0&amp;ie=utf-8&amp;oe=utf-8&amp;meta=lr%3Dlang_de&amp;client=firefox-a&amp;rls=org.mozilla<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f1e9-1f1ea.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--germany"
      title=":de:"
      alt="🇩🇪"
    />official</a><br />
und dann das erste^^<br />
Dachte, das wärs, war ja auch ne Seite, die so bissl nach Programmierung aussah^^</p>
<blockquote>
<p>Das kannste ausschließen, wenn dus mitter WinMain probiert hast,</p>
</blockquote>
<p>Stimmt eigentlich, ich habs grad mal probiert - Fehlanzeige.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144909</guid><dc:creator><![CDATA[DaGeRe]]></dc:creator><pubDate>Tue, 26 Sep 2006 16:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 16:44:00 GMT]]></title><description><![CDATA[<p>DaGeRe schrieb:</p>
<blockquote>
<p>Nein, ich weiß net, was Spy++ ist, einfach<br />
<a href="http://www.google.de/search?q=Spy%2B%2B&amp;start=0&amp;ie=utf-8&amp;oe=utf-8&amp;meta=lr%3Dlang_de&amp;client=firefox-a&amp;rls=org.mozilla:de:official" rel="nofollow">http://www.google.de/search?q=Spy%2B%2B&amp;start=0&amp;ie=utf-8&amp;oe=utf-8&amp;meta=lr%3Dlang_de&amp;client=firefox-a&amp;rls=org.mozilla<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f1e9-1f1ea.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--germany"
      title=":de:"
      alt="🇩🇪"
    />official</a><br />
und dann das erste^^<br />
Dachte, das wärs, war ja auch ne Seite, die so bissl nach Programmierung aussah^^</p>
</blockquote>
<p><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="😃"
    /> <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="😃"
    /></p>
<p>Die Spy++ ist ein Programm von M$, mit dem man sich <em>nützliche Infos zu Fenster</em> holen kann...uvm...</p>
<p>Ist in der Regel bei M$ Visual Studio dabei...</p>
<p><strong>Hier n paar Links...:</strong><br />
<a href="http://www.codeproject.com/dialog/windowfinder.asp" rel="nofollow">Zur Benutzung (engl.)</a><br />
<a href="http://catch22.net/img/downloadbut.gif" rel="nofollow">Freeware-Alternative (WinSpy++)</a><br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcug98/html/_asug_home_page.3a_.spy.2b2b.asp" rel="nofollow">Allgemeine Hinweise von M$</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144930</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 26 Sep 2006 16:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 17:00:18 GMT]]></title><description><![CDATA[<p>Mit dem switch() case WM_* break werden für alle Nachrichten die Default-WndProc des Betriebssystems aufgerufen.</p>
<p>Die Win32-Referenz: &quot;An application should return zero if it processes this message&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144942</guid><dc:creator><![CDATA[keksekekse]]></dc:creator><pubDate>Tue, 26 Sep 2006 17:00:18 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI und das Drücken von Tasten on Tue, 26 Sep 2006 17:15:37 GMT]]></title><description><![CDATA[<p>Danke, keksekekse, istn Interresanter Hinweis, ich habs mal verändert. Hat aber leider nichts mit dem Fehler zu tun <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144953</guid><dc:creator><![CDATA[DaGeRe]]></dc:creator><pubDate>Tue, 26 Sep 2006 17:15:37 GMT</pubDate></item></channel></rss>