<?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[Hotkey in Dialogbasierte Application]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte in meinem Dialogbasierten Programm Hotkey wie ALT+F1 für fullscreen, ALT+F2 für noramle Ansicht verwenden.</p>
<p>1. In Message Map habe ich das Event deklariert:</p>
<pre><code>ON_MESSAGE(WM_HOTKEY,OnHotKey)
</code></pre>
<p>2. In OnInitDialog():</p>
<pre><code>/* full-screnn with hotkey */
BOOL bRetCodeF = RegisterHotKey(GetSafeHwnd(),1,MOD_ALT,VK_F1);
ASSERT(bRetCodeF);
/* normal screen */
BOOL bRetCodeN = RegisterHotKey(GetSafeHwnd(),2,MOD_ALT, VK_F2);
ASSERT(bRetCodeN);
</code></pre>
<p>3. In Funktion OnHotKey(WPARAM w, LPARAM l)</p>
<pre><code>{
	/* Fullscreen */
	if((w == 1) &amp;&amp; (l == MOD_ALT|VK_F1))
	{
		ModifyStyle(WS_CAPTION|WS_THICKFRAME|WS_SYSMENU,0);
		ShowWindow(SW_SHOWMAXIMIZED);
	}
	if ((w == 2) &amp;&amp; (l == MOD_ALT|VK_F2))/* normal screen */
	{
		ModifyStyle(0, WS_CAPTION|WS_THICKFRAME|WS_SYSMENU);
		ShowWindow(SW_SHOWMAXIMIZED);
	}
    return 0L;
}
</code></pre>
<p>Mein Problem ist, das Hotkey funktioniert nur ein Mal: Beim ALT+F1 hat das Programm Vollbildmodus, aber dann beim ALT+F2 passiert nichts.</p>
<p>Wer weiss die Lösung?</p>
<p>dank im voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160036/hotkey-in-dialogbasierte-application</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 09:21:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160036.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Sep 2006 11:03:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hotkey in Dialogbasierte Application on Thu, 21 Sep 2006 11:03:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte in meinem Dialogbasierten Programm Hotkey wie ALT+F1 für fullscreen, ALT+F2 für noramle Ansicht verwenden.</p>
<p>1. In Message Map habe ich das Event deklariert:</p>
<pre><code>ON_MESSAGE(WM_HOTKEY,OnHotKey)
</code></pre>
<p>2. In OnInitDialog():</p>
<pre><code>/* full-screnn with hotkey */
BOOL bRetCodeF = RegisterHotKey(GetSafeHwnd(),1,MOD_ALT,VK_F1);
ASSERT(bRetCodeF);
/* normal screen */
BOOL bRetCodeN = RegisterHotKey(GetSafeHwnd(),2,MOD_ALT, VK_F2);
ASSERT(bRetCodeN);
</code></pre>
<p>3. In Funktion OnHotKey(WPARAM w, LPARAM l)</p>
<pre><code>{
	/* Fullscreen */
	if((w == 1) &amp;&amp; (l == MOD_ALT|VK_F1))
	{
		ModifyStyle(WS_CAPTION|WS_THICKFRAME|WS_SYSMENU,0);
		ShowWindow(SW_SHOWMAXIMIZED);
	}
	if ((w == 2) &amp;&amp; (l == MOD_ALT|VK_F2))/* normal screen */
	{
		ModifyStyle(0, WS_CAPTION|WS_THICKFRAME|WS_SYSMENU);
		ShowWindow(SW_SHOWMAXIMIZED);
	}
    return 0L;
}
</code></pre>
<p>Mein Problem ist, das Hotkey funktioniert nur ein Mal: Beim ALT+F1 hat das Programm Vollbildmodus, aber dann beim ALT+F2 passiert nichts.</p>
<p>Wer weiss die Lösung?</p>
<p>dank im voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141715</guid><dc:creator><![CDATA[liqun]]></dc:creator><pubDate>Thu, 21 Sep 2006 11:03:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hotkey in Dialogbasierte Application on Thu, 21 Sep 2006 12:29:25 GMT]]></title><description><![CDATA[<p>Einfacher ist es so etwas über PreTranslateMessage abzuwickeln. Denn dieser Hotkey soll ja nicht systemweit sein... oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141781</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 21 Sep 2006 12:29:25 GMT</pubDate></item><item><title><![CDATA[Reply to Hotkey in Dialogbasierte Application on Thu, 21 Sep 2006 13:22:40 GMT]]></title><description><![CDATA[<p>Hallo Martin,</p>
<p>danke für deinen Post. Das Problem ist gelöst.</p>
<p>HIer ist der richtige Code:</p>
<pre><code>LRESULT CP2BDlg::OnHotKey(WPARAM w, LPARAM l)
{
	WORD key = HIWORD(l);
	WORD modifier = LOWORD(l);

	/* Fullscreen */
	if((w == 1) &amp;&amp; ((modifier == MOD_ALT) &amp;&amp; (key == VK_F1)))
	{
		ModifyStyle(WS_CAPTION|WS_THICKFRAME|WS_SYSMENU,0);
		ShowWindow(SW_SHOWMAXIMIZED);
	}
	else if ((w == 2) &amp;&amp; ((modifier == MOD_ALT) &amp;&amp; (key == VK_F2)))/* normal screen */
	{
		ModifyStyle(0, WS_CAPTION|WS_THICKFRAME|WS_SYSMENU, SWP_FRAMECHANGED);
		ShowWindow(SW_SHOWDEFAULT);
	}
    return 0L;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1141845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141845</guid><dc:creator><![CDATA[liqun]]></dc:creator><pubDate>Thu, 21 Sep 2006 13:22:40 GMT</pubDate></item></channel></rss>