<?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[Auf Bestimmte Tasten reagieren]]></title><description><![CDATA[<p>Mein Problem ist heir schon einige MAls durchgekaut worden, aber ich komm trotzdem nicht ganz klar.</p>
<p>Ich möchte eine Anwendung schrieben, die mir auf bestimmte Tasten (z.B. Pfeiltasten, Num-Block, etc) ein Event auslöst.</p>
<p>Ich hab mir alles, was ich dazu hier im Forum oder unter Google gefunden hab reingezogen (GetKeyState(), OnKeyDown() und der Rest) aber ich versteh nur bahnhof.<br />
Gibts nicht irgendwo einen einfachen 3 Zeiler, der mir das so schnell verdeutlichen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174406/auf-bestimmte-tasten-reagieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 12:02:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174406.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Feb 2007 14:50:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Mon, 26 Feb 2007 14:50:40 GMT]]></title><description><![CDATA[<p>Mein Problem ist heir schon einige MAls durchgekaut worden, aber ich komm trotzdem nicht ganz klar.</p>
<p>Ich möchte eine Anwendung schrieben, die mir auf bestimmte Tasten (z.B. Pfeiltasten, Num-Block, etc) ein Event auslöst.</p>
<p>Ich hab mir alles, was ich dazu hier im Forum oder unter Google gefunden hab reingezogen (GetKeyState(), OnKeyDown() und der Rest) aber ich versteh nur bahnhof.<br />
Gibts nicht irgendwo einen einfachen 3 Zeiler, der mir das so schnell verdeutlichen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235802</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Mon, 26 Feb 2007 14:50:40 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Mon, 26 Feb 2007 15:35:53 GMT]]></title><description><![CDATA[<p>Wasmeinst Du mit dreizeiler?</p>
<p>Deine Angaben sind unklar!</p>
<p>1. Willst Du das Applikationsübergreifend. Dann brauchst Du einen Hook<br />
2. Geht es nur um den View Deiner SDI/MDI Applikation. Dann brauchst Du nur einen simplen OnKeyDown Handler. (WM_KEYDOWN)<br />
3. Übergreifend in einem Dialog für alle darin enthaltenen Controls. Dann musst Du PreTranslateMessage verwenden.</p>
<p>Was willst Du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235843</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 26 Feb 2007 15:35:53 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Mon, 26 Feb 2007 15:56:23 GMT]]></title><description><![CDATA[<p>ich will 2.</p>
<p>Ok hast recht, ich war sparsam mit meinen wüschen.</p>
<p>Ich will mit einem Tastendruck (z.B. VK_UP) in meinem Dialog ein Event (z.B. MessagBox zum testen) aktivieren. Kein schnickschnak mit &quot;fenster ist im Hintergrund&quot; oder &quot;Dialogübergreifend&quot;. Einfach, Simpel und Funktionell.</p>
<p>So in etwa:</p>
<p>if(taste &quot;bla&quot; gedrückt)<br />
{<br />
Mach was;</p>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235861</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Mon, 26 Feb 2007 15:56:23 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Mon, 26 Feb 2007 17:27:42 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Ich glaube, das hier entspricht deinen Wünschen:</p>
<pre><code class="language-cpp">MSG message;

if(::PeekMessage(&amp;message, NULL, 0, 0, PM_REMOVE))
{
    ::TranslateMessage(&amp;message);

    if(message==VK_UP)
    {
        MachWas();
    }

    return;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1235915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235915</guid><dc:creator><![CDATA[TOCMaster]]></dc:creator><pubDate>Mon, 26 Feb 2007 17:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Mon, 26 Feb 2007 20:18:48 GMT]]></title><description><![CDATA[<p>Nein! Das entspricht sicherlich nicht seinen Wünschen.</p>
<p>Er hat ein SDI Fenster. Er braucht nichts anderes als einen entsprechenden WM_KEYDOWN Handler einzubauen. Trivialstes Windows Programmieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236016</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 26 Feb 2007 20:18:48 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Tue, 27 Feb 2007 12:35:46 GMT]]></title><description><![CDATA[<p>Martin hat recht. Ist SEHR primitiv. Ich habs auch mitlerweile hinbekommen, dass ich halt mit der Funktion OnKeyDown() tasten abfragen kann. Hab auch gelesen,dass dazu die Buttons im Dialog Deaktiviert sein MÜSSEN.</p>
<p>Nur irgendwie wollen die Cursor-Tasten, num-Block und Tasten wie &quot;Space&quot;, &quot;alt&quot; etc nicht anspringen.<br />
Toll wäre auch, wenn ich die Buttons aktiv lassen könnte, aber das ist erstmal zweit-rangig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236157</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Tue, 27 Feb 2007 12:35:46 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Tue, 27 Feb 2007 12:41:03 GMT]]></title><description><![CDATA[<p>Also, ich würde es mit PreTranslateMessage im MainFrame lösen.</p>
<pre><code class="language-cpp">// Wurde eine Taste gedrückt?
	if (pMsg-&gt;message == WM_KEYDOWN)
	{
		UINT  nKeyCode = pMsg-&gt;wParam; // virtual key code of the key pressed
// ...
</code></pre>
<p>Oder du versuchst es erstmal zusätzlich zu WM_KEYDOWN mit WM_SYSKEYDOWN. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1236161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236161</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Tue, 27 Feb 2007 12:41:03 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Wed, 28 Feb 2007 11:46:00 GMT]]></title><description><![CDATA[<p>so ich wieder..<br />
Ich habs mit dem WM_SYSKEYDOWN versucht, aber er nimmt trotzdem keine Cursortasten (und andere Systemtasten an). Liegt das daran, dass ich nen Dialog starte? Hab zwar alle Elemente Deaktiviert, aber ich weiß trotzdem nicht weiter.</p>
<p>Bei den VK_NUM-Tasten will er nichtmal komplielieren. VK_NUM&lt;ZAHL&gt; ist doch richtig oder?</p>
<p>Bsp:</p>
<pre><code class="language-cpp">void CTestDlg::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	if(nFlags == VK_SPACE)
		MessageBox(_T(&quot;test&quot;),_T(&quot;space&quot;), NULL);

	CDialog::OnSysKeyDown(nChar, nRepCnt, nFlags);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1236696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236696</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Wed, 28 Feb 2007 11:46:00 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Wed, 28 Feb 2007 11:45:44 GMT]]></title><description><![CDATA[<p>Cursor-Tasten wie auch die VK_ENTER Taste frisst der PreTranslateMessage Handler des Dialoges. Du müsstest Sie aber dennoch bekommen, wenn Du einen PreTranslateMessage Handler ist. Im Diaog selbst kommen die nicht an!</p>
<p>Hat Dein Dialog keine Controls?<br />
Was ist das für ein Konstrukt? Wo willst Du denn die Tasten abfangen und für was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236710</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 28 Feb 2007 11:45:44 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Wed, 28 Feb 2007 11:51:26 GMT]]></title><description><![CDATA[<p>Mit meinem Programm will ich Bytes an eine Funktion schicken, die dann übern USB einen schrittmotor betreiben. Klappt auch wunderbar. Ich klicke den Button und schwubs drehen sich die motoren und das senden wird mit einem Timer automatisch fortgeführt.</p>
<p>Nun will ich das aber auch so haben, dass ich mit den Cursortasten ODER den NUM-Block auch die Events auslösen kann. Nur wenn ich die Buttons nicht deaktiviere, nimmt er mit OnKeyDown() nicht die tasten an (habs erstmal mit normalen Buchstaben probiert).</p>
<p>Mit dem PreTranslateMessage handler selber hab ich direkt noch ncihts gemacht, weil ich nicht genau weiß, wo ich den reinpacken bzw, abholen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236720</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Wed, 28 Feb 2007 11:51:26 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Bestimmte Tasten reagieren on Wed, 28 Feb 2007 12:28:46 GMT]]></title><description><![CDATA[<p>Habs gefunden:</p>
<pre><code class="language-cpp">BOOL CDlgDrawDlg::PreTranslateMessage(MSG* pMsg)
{
    // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
    // Falls Taste gedrueckt wurde
    if (pMsg-&gt;message == WM_KEYDOWN)
    {
        // Wenn ESCAPE, dann Nachricht verwerfen
        if (pMsg-&gt;wParam == VK_ESCAPE)
        // Nachricht verwerfen!
            return 1;
        // Wenn RETURN, dann nach TAB umwandeln
        if (pMsg-&gt;wParam == VK_RETURN)
            pMsg-&gt;wParam = VK_TAB;
    }
    // Standard-Behandlung durchfuehren
    return CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Quelle: <a href="http://www.cpp-tutor.de/mfc/mfc/kap8/tut/tut1.htm" rel="nofollow">http://www.cpp-tutor.de/mfc/mfc/kap8/tut/tut1.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236752</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Wed, 28 Feb 2007 12:28:46 GMT</pubDate></item></channel></rss>