<?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[Keine Reaktion auf WM_CHAR]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich muss in einem Proggy die F1 Taste auswerten bzw. einen Druck dieser. Ich dachte da nehm ich den Message Handler zu WM_CHAR, aber da geht er gar nicht erst rein. Ich vermute das hat etwas mit dem Focus im Dialog zu tun. Ich wollte wenn möglich den KeyboardHook umgehen, da muss ich ja immer nachschauen, ob auch das Fenster gemeint ist. Wenns nicht anders geht, dann muss ich eben den Hook nehmen.</p>
<pre><code class="language-cpp">void CTestDialog::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	AfxMessageBox(L&quot;F1 Taste gedrückt&quot;);

	if(nChar == VK_F1)
	{
		m_edit_input_ctrl.EnableWindow(TRUE);
	}

	CDialog::OnChar(nChar, nRepCnt, nFlags);
}
</code></pre>
<p>Vielen Dank und viel Grüße</p>
<p>Ranger</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184190/keine-reaktion-auf-wm_char</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 00:11:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184190.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Jun 2007 06:05:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Keine Reaktion auf WM_CHAR on Wed, 13 Jun 2007 06:05:52 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich muss in einem Proggy die F1 Taste auswerten bzw. einen Druck dieser. Ich dachte da nehm ich den Message Handler zu WM_CHAR, aber da geht er gar nicht erst rein. Ich vermute das hat etwas mit dem Focus im Dialog zu tun. Ich wollte wenn möglich den KeyboardHook umgehen, da muss ich ja immer nachschauen, ob auch das Fenster gemeint ist. Wenns nicht anders geht, dann muss ich eben den Hook nehmen.</p>
<pre><code class="language-cpp">void CTestDialog::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	AfxMessageBox(L&quot;F1 Taste gedrückt&quot;);

	if(nChar == VK_F1)
	{
		m_edit_input_ctrl.EnableWindow(TRUE);
	}

	CDialog::OnChar(nChar, nRepCnt, nFlags);
}
</code></pre>
<p>Vielen Dank und viel Grüße</p>
<p>Ranger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304549</guid><dc:creator><![CDATA[Glasgow_Ranger]]></dc:creator><pubDate>Wed, 13 Jun 2007 06:05:52 GMT</pubDate></item><item><title><![CDATA[Reply to Keine Reaktion auf WM_CHAR on Wed, 13 Jun 2007 07:16:02 GMT]]></title><description><![CDATA[<p>Dies hier sollte Dir für den Anfang schon mal weiterhelfen:</p>
<p>1. <a href="http://www.cpp-tutor.de/mfc/mfc/kap6/lektion2.htm" rel="nofollow">http://www.cpp-tutor.de/mfc/mfc/kap6/lektion2.htm</a><br />
2. MFC Technote#28<br />
3. WinHelp() überschreiben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304575</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Wed, 13 Jun 2007 07:16:02 GMT</pubDate></item><item><title><![CDATA[Reply to Keine Reaktion auf WM_CHAR on Wed, 13 Jun 2007 07:35:53 GMT]]></title><description><![CDATA[<p>Danke soweit.</p>
<p>Ich glaube wir haben uns da missverstanden. Es geht mir nicht um den Help Aufruf. Es ist egal, was ich drücke, er reagiert nicht darauf und bringt mir die Taste nicht. Ich hab F1 geschrieben, aber ich brauche z.B. auch F4. Ich habe extra den Debugger befragt, aber der kommt gar nicht in die OnKeyDown() rein. Es sieht also so aus, als hätte nie jemand die Taste gedrückt. Kann das an einem Focus auf einem Button innerhalb des Dialogers liegen?</p>
<pre><code class="language-cpp">void CTestDialog::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	AfxMessageBox(L&quot;Taste gedrückt&quot;);

	if(nChar == VK_F1)
	{
		m_input_ctrl.EnableWindow(TRUE);
	}

	CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}

// er kommt nicht in die Funktion. Ich habe Breakpoints gesetzt, die nie erreicht werden
</code></pre>
<p>Danke,</p>
<p>Ranger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304590</guid><dc:creator><![CDATA[Glasgow_Ranger]]></dc:creator><pubDate>Wed, 13 Jun 2007 07:35:53 GMT</pubDate></item><item><title><![CDATA[Reply to Keine Reaktion auf WM_CHAR on Wed, 13 Jun 2007 08:04:08 GMT]]></title><description><![CDATA[<p>Glasgow_Ranger schrieb:</p>
<blockquote>
<p>ich muss in einem Proggy die F1 Taste auswerten bzw. einen Druck dieser.</p>
</blockquote>
<p>Glasgow_Ranger schrieb:</p>
<blockquote>
<p>Ich glaube wir haben uns da missverstanden.</p>
</blockquote>
<p>Nein, das sehe ich nicht so. Du hast offensichtlich nur Deine Frage nicht korrekt formuliert. WinHelp() liefert genau das, was Du gefragt hast.</p>
<p>Ansonsten probier mal OnSysKeyDown() oder PreTranslateMessage()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304607</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Wed, 13 Jun 2007 08:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to Keine Reaktion auf WM_CHAR on Wed, 13 Jun 2007 08:08:08 GMT]]></title><description><![CDATA[<p>Probier es mal mit PreTranslateMessage</p>
<pre><code class="language-cpp">BOOL CTestDialog::PreTranslateMessage(MSG* pMsg)
{
   if (pMsg-&gt;message == WM_KEYDOWN) 
    { 

        if (pMsg-&gt;wParam == VK_F4) 
		{
			//Aktionen
            return 1;
		}
    } 

	return CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304609</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 13 Jun 2007 08:08:08 GMT</pubDate></item><item><title><![CDATA[Reply to Keine Reaktion auf WM_CHAR on Wed, 13 Jun 2007 08:40:46 GMT]]></title><description><![CDATA[<p>Wunderbar.</p>
<p>Es funzt so wie es soll. Ich hatte schon einen Versuch mit PreTranslateMessage(), da hat er gar nichts mehr gemacht. Vielleicht hab ich da irgendwas verquer gemacht. Jetzt geht es und gut isses.</p>
<p>Viele Grüße und nochmal Danke</p>
<p>Ranger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304636</guid><dc:creator><![CDATA[Glasgow_Ranger]]></dc:creator><pubDate>Wed, 13 Jun 2007 08:40:46 GMT</pubDate></item></channel></rss>