<?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[WM_KEYDOWN Frage (Probleme mit Tastenkombinationen)]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe das Problem, dass unter Win98 (was ich dummerweise auch unterstützen muss) der Acceleratortable keine Wirkung hat.<br />
Ich habe lange nach dem Fehler gesucht und nix gefunden. Da niemand eine Lösung hatte, habe ich mich mit einem Workaround abgefunden.</p>
<p>Der sieht so aus:</p>
<pre><code class="language-cpp">BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) 
{
	// Wurde eine Taste gedrückt?
	if (pMsg-&gt;message == WM_KEYDOWN)
	{
		UINT  nKeyCode = pMsg-&gt;wParam; // virtual key code of the key pressed
		if (GetAsyncKeyState(VK_CONTROL))
		{
			if (GetAsyncKeyState(VK_SHIFT))
			{
				// Strg + Shift + ...
				switch (nKeyCode)
				{
// [...]
				case _T('b'):
					SendMessage(WM_COMMAND, ID_LAGER_BUCH_ALLE);
					return FALSE;
					break;
// [...]
				default:
					break;
				}
			}
			else
			{
				// Strg + ...
				switch (nKeyCode)
				{
// [...]
				case _T('f'):
				case _T('F'):
					SendMessage(WM_COMMAND, ID_BEARBEITEN_SUCHEN);
					return FALSE;
					break;
// [...]
				default:
					break;
				}
			}
		}
		else // Ohne Strg-Taste
		{
			switch (nKeyCode)
			{
			case VK_ESCAPE:
				SendMessage(WM_COMMAND, ID_BEARBEITEN_ABBRECHEN);
				return FALSE;
				break;
// [...]
			default:
				break;
			}
		}
	}
	else if ((pMsg-&gt;message == WM_SYSKEYDOWN) &amp;&amp; (GetAsyncKeyState(VK_F10)))
	{
		SendMessage(WM_COMMAND, ID_BEARBEITEN_SPEICHERN);
		return FALSE;
	}

	return CFrameWnd::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Wenn ich nun Strg+Shift+B drücke, reagiert der Breakpoint in Zeile 16 nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Strg+F funktioniert hingegen, der Breakpoint in Zeile 32 reagiert.</p>
<p>Hilfe bitte, wie kriege ich diese verflixten Tastenkombinationen zum Laufen?<br />
Unsere User sind DOS-geschädigt und arbeiten zu 90% per Tastatur. <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>
<p>Ich bin auch offen für ganz andere Lösungen... Hauptsache sie funktionieren. <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/topic/160111/wm_keydown-frage-probleme-mit-tastenkombinationen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 09:21:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160111.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Sep 2006 07:04:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WM_KEYDOWN Frage (Probleme mit Tastenkombinationen) on Fri, 22 Sep 2006 07:07:43 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe das Problem, dass unter Win98 (was ich dummerweise auch unterstützen muss) der Acceleratortable keine Wirkung hat.<br />
Ich habe lange nach dem Fehler gesucht und nix gefunden. Da niemand eine Lösung hatte, habe ich mich mit einem Workaround abgefunden.</p>
<p>Der sieht so aus:</p>
<pre><code class="language-cpp">BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) 
{
	// Wurde eine Taste gedrückt?
	if (pMsg-&gt;message == WM_KEYDOWN)
	{
		UINT  nKeyCode = pMsg-&gt;wParam; // virtual key code of the key pressed
		if (GetAsyncKeyState(VK_CONTROL))
		{
			if (GetAsyncKeyState(VK_SHIFT))
			{
				// Strg + Shift + ...
				switch (nKeyCode)
				{
// [...]
				case _T('b'):
					SendMessage(WM_COMMAND, ID_LAGER_BUCH_ALLE);
					return FALSE;
					break;
// [...]
				default:
					break;
				}
			}
			else
			{
				// Strg + ...
				switch (nKeyCode)
				{
// [...]
				case _T('f'):
				case _T('F'):
					SendMessage(WM_COMMAND, ID_BEARBEITEN_SUCHEN);
					return FALSE;
					break;
// [...]
				default:
					break;
				}
			}
		}
		else // Ohne Strg-Taste
		{
			switch (nKeyCode)
			{
			case VK_ESCAPE:
				SendMessage(WM_COMMAND, ID_BEARBEITEN_ABBRECHEN);
				return FALSE;
				break;
// [...]
			default:
				break;
			}
		}
	}
	else if ((pMsg-&gt;message == WM_SYSKEYDOWN) &amp;&amp; (GetAsyncKeyState(VK_F10)))
	{
		SendMessage(WM_COMMAND, ID_BEARBEITEN_SPEICHERN);
		return FALSE;
	}

	return CFrameWnd::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Wenn ich nun Strg+Shift+B drücke, reagiert der Breakpoint in Zeile 16 nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Strg+F funktioniert hingegen, der Breakpoint in Zeile 32 reagiert.</p>
<p>Hilfe bitte, wie kriege ich diese verflixten Tastenkombinationen zum Laufen?<br />
Unsere User sind DOS-geschädigt und arbeiten zu 90% per Tastatur. <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>
<p>Ich bin auch offen für ganz andere Lösungen... Hauptsache sie funktionieren. <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/1142309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142309</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 22 Sep 2006 07:07:43 GMT</pubDate></item><item><title><![CDATA[Reply to WM_KEYDOWN Frage (Probleme mit Tastenkombinationen) on Fri, 22 Sep 2006 07:12:10 GMT]]></title><description><![CDATA[<p>Wenn Du auch nur ein _T('b') abfragst dann funzt es auch nicht.<br />
Bei dir fehlt ein _T('B')</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142314</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Fri, 22 Sep 2006 07:12:10 GMT</pubDate></item><item><title><![CDATA[Reply to WM_KEYDOWN Frage (Probleme mit Tastenkombinationen) on Fri, 22 Sep 2006 07:20:55 GMT]]></title><description><![CDATA[<p>Ups, der Fehler war wirklich dämlich, vor allem weil ich es weiter unten ja gemacht habe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Aber wieso der Standardmechanismus (Acceleratortable) nicht geht, weißt du auch nicht, oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Oder wie man den von Hand auslöst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142319</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 22 Sep 2006 07:20:55 GMT</pubDate></item><item><title><![CDATA[Reply to WM_KEYDOWN Frage (Probleme mit Tastenkombinationen) on Fri, 22 Sep 2006 07:59:28 GMT]]></title><description><![CDATA[<p>GetAsychnKeystate ist die falsche Funktion. Die liefert nicht den Status zu der Nachricht, die Du gerade behandelts sondern den evtl. neueren aktuellen Status. Das kann zu heftigsten Verwirrungen führen gerade wenn das System etwas stärker belastet ist und zudem die Unterscheidungen gravierende Bearbeitungsunterschiede zeigen (Verschieben/Kopieren).</p>
<p>Immer GetKeyState verwenden. Außer Du benötigst wirklich den aktuellen Wert (den ich allerdings no nie benötigt habe).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142338</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 22 Sep 2006 07:59:28 GMT</pubDate></item><item><title><![CDATA[Reply to WM_KEYDOWN Frage (Probleme mit Tastenkombinationen) on Fri, 22 Sep 2006 08:01:10 GMT]]></title><description><![CDATA[<p>estartu schrieb:</p>
<blockquote>
<p>Aber wieso der Standardmechanismus (Acceleratortable) nicht geht, weißt du auch nicht, oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Oder wie man den von Hand auslöst?</p>
</blockquote>
<p>Nein leider nicht.<br />
So gut kenn ich mich in VC++ auch nicht aus. Bin auch erst seit 1 1/2 Jahren dabei und hab nicht immer so viel Zeit zum Programmieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142341</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Fri, 22 Sep 2006 08:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to WM_KEYDOWN Frage (Probleme mit Tastenkombinationen) on Fri, 22 Sep 2006 08:18:26 GMT]]></title><description><![CDATA[<p>@...: Schade, trotzdem vielen Dank. <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="🙂"
    /><br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/35992">@Martin</a>: Okay, ich probiere das mal. Hoffentlich hilft es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142356</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 22 Sep 2006 08:18:26 GMT</pubDate></item></channel></rss>