<?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[2 Dialoge &amp;amp; Tastensteuerung]]></title><description><![CDATA[<p>Hallo User,</p>
<p>ich habe in meinem Programm 2 Dialoge bei welchen ich unterschiedlich auf Tastenanschläge reagieren möchte. Das ganze habe ich bis jetzt folgendermaßen realisiert :</p>
<pre><code class="language-cpp">BOOL CAppDlg::PreTranslateMessage(MSG* pMsg) 
{
	BOOL bHandled = FALSE;

	if(pMsg-&gt;message == WM_KEYDOWN)
        {

           if(pMsg-&gt;wParam == VK_ESCAPE)
           {
    	       EndDialog(IDCANCEL);
	       bHandled = TRUE;
           }

           if(pMsg-&gt;wParam == VK_PRIOR)
	   {
	       // Reaktion
	       bHandled = TRUE;
	   }

	   if(pMsg-&gt;wParam == VK_NEXT)
	   {
	       // Reaktion
	       bHandled = TRUE;
	   }	  
	}

	return bHandled ? FALSE : CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Jetzt muss ich aber in Dialog 1 auf VK_PRIOR und VK_NEXT verschieden reagieren. Funktioniert soweit auch wunderbar, eben für jeden Dialog eine eigene PreTranslateMessage Funktion.</p>
<p>ABER : Drücke ich in Dialog 2 die ESC Taste, schließt er das ganze Programm. Nach debuggen habe ich gesehen, dass er erst in Dialog 2 die Anweisungen für VK_ESCAPE ausführt, danach sofort in Dialog 1 geht und dort wieder die Anweisungen für VK_ESCAPE ausführt. Logischerweise ist nach 2mal EndDialog dann das ganze Programm geschlossen. Kann ich das irgendwie ändern ? Bzw ... warum geht er direkt nach der ersten PreTranslateMessage Funktion gleich in die zweite ?</p>
<p>Danke für eure Hilfe !</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/148407/2-dialoge-amp-tastensteuerung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 00:06:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/148407.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 May 2006 11:58:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 Dialoge &amp;amp; Tastensteuerung on Fri, 26 May 2006 11:58:05 GMT]]></title><description><![CDATA[<p>Hallo User,</p>
<p>ich habe in meinem Programm 2 Dialoge bei welchen ich unterschiedlich auf Tastenanschläge reagieren möchte. Das ganze habe ich bis jetzt folgendermaßen realisiert :</p>
<pre><code class="language-cpp">BOOL CAppDlg::PreTranslateMessage(MSG* pMsg) 
{
	BOOL bHandled = FALSE;

	if(pMsg-&gt;message == WM_KEYDOWN)
        {

           if(pMsg-&gt;wParam == VK_ESCAPE)
           {
    	       EndDialog(IDCANCEL);
	       bHandled = TRUE;
           }

           if(pMsg-&gt;wParam == VK_PRIOR)
	   {
	       // Reaktion
	       bHandled = TRUE;
	   }

	   if(pMsg-&gt;wParam == VK_NEXT)
	   {
	       // Reaktion
	       bHandled = TRUE;
	   }	  
	}

	return bHandled ? FALSE : CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Jetzt muss ich aber in Dialog 1 auf VK_PRIOR und VK_NEXT verschieden reagieren. Funktioniert soweit auch wunderbar, eben für jeden Dialog eine eigene PreTranslateMessage Funktion.</p>
<p>ABER : Drücke ich in Dialog 2 die ESC Taste, schließt er das ganze Programm. Nach debuggen habe ich gesehen, dass er erst in Dialog 2 die Anweisungen für VK_ESCAPE ausführt, danach sofort in Dialog 1 geht und dort wieder die Anweisungen für VK_ESCAPE ausführt. Logischerweise ist nach 2mal EndDialog dann das ganze Programm geschlossen. Kann ich das irgendwie ändern ? Bzw ... warum geht er direkt nach der ersten PreTranslateMessage Funktion gleich in die zweite ?</p>
<p>Danke für eure Hilfe !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065424</guid><dc:creator><![CDATA[inf]]></dc:creator><pubDate>Fri, 26 May 2006 11:58:05 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dialoge &amp;amp; Tastensteuerung on Wed, 07 Jun 2006 06:14:14 GMT]]></title><description><![CDATA[<p>Keiner eine Idee ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072918</guid><dc:creator><![CDATA[inf]]></dc:creator><pubDate>Wed, 07 Jun 2006 06:14:14 GMT</pubDate></item></channel></rss>