<?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[Nachrichten an Windows Fenster beeinflussen - Problem]]></title><description><![CDATA[<p>Ich bin gerade dabei unter WIN XP mit Visual Studio C++ den Sourcecode eines Utilitys zum Verkleinern von Programmen in die Trayleiste an meine Wünsche anzupassen.<br />
Da ich mich mit dem ganzen Windows Benachrichtigungssystem noch nie beschäftig habe, komm ich da bei einem Problem leider nicht weiter.</p>
<p>Da Programm funktioniert so, dass beim Klicken auf das <strong>Minimieren</strong> Symbol die auftetende Benachrichtigungs-Meldung in einer eigenen <strong>WndProc Funktion</strong> zum <strong>Windows Nachrichten</strong> verarbeiten aufgeschnappt wird und eine passende Unterfunktion aufruft die dann wiederum eine für die <strong>WM_SYSCOMMAND Notification</strong> mit dem Wert <strong>SC_MINIMIZE</strong> passende Unterfunktion aufruft.<br />
Dort wird dann mit letztendlich mit</p>
<blockquote>
<p>Shell_NotifyIcon( NIM_ADD, &amp;p-&gt;nid );</p>
<p>if(ShowWindowAsync( p-&gt;hWnd, SW_HIDE ) )</p>
</blockquote>
<p>das jeweils gewünschte Programm von der Taskleiste in den Tray verschoben.</p>
<p>Mit einem Klick im Tray wird dann mittels:</p>
<blockquote>
<p>PostMessage( p-&gt;hWnd, WM_SYSCOMMAND, SC_RESTORE, 0 );<br />
SetForegroundWindow( p-&gt;hWnd );<br />
Shell_NotifyIcon( NIM_DELETE, &amp;p-&gt;nid );<br />
DestroyIcon( p-&gt;nid.hIcon );</p>
</blockquote>
<p>das jeweilige Programm zurück in die Taskleiste und den Vordergrund geholt.</p>
<p><strong>Ich</strong> habe diesen ganzen Code nun um ein paar Zeilen erweitert die dafür sorgen sollen das auch beim Klicken auf die Kopfzeile ( die blaue Leiste) die jeweilige Anwendung in den Tray minimiert wird weil das Minimieren Symbol so klein ist. Dabei werden einfach wenn eine <strong>WM_SYSCOMMAND Notification</strong> mit dem Wert <strong>SC_MOVE</strong> auftritt die obigen Funktionen vom Minimieren aufgerufen und es läuft alles somit identisch ab.</p>
<p>Das funktioniert auch genauso gut wie das eigentliche Minimieren und im Debugger werden die absolut gleichen Werte und Handles angezeigt nur in einer gewissen Situation hat das Kopfzeilen-Minimieren nachfolgend Probleme bereitet:<br />
Die minimierte Anwendung hat nähmlich die Fähigkeit sich selbt wieder einzublenden. Wenn ich sie jedoch zuvor mittels Kopfzeilen-Minimieren minimiert habe blendet sich die Anwendung nicht mehr selber ein obwohl das eben sehr wichtig für mich wäre.</p>
<p>Ich hätte jetzt eben gerne Tipps wie ich dem Problem beikommen kann:</p>
<p>1). Obwohl sobald eine <strong>WM_SYSCOMMAND Notification</strong> mit dem Wert <strong>SC_MOVE</strong> oder <strong>SC_MINIMIZE</strong> auffange der selbe Code aufgrufen wird scheint irgendwas anders zu sein.<br />
Irgendwas muss also Windows im Hintergrund anscheinend anders lassen weil das spätere Verhalten der Anwendung eben anders ist. Hat jemand eine Idee ob man da irgendwas machen kann?</p>
<p>2.) Kann man irgendwie mittels eines Befehls das Ereignis/Nachricht/wasauchimmer das beim Klicken auf das Minimieren Symbol rechts oben passiert simullieren?</p>
<p>3.) Oder wäre es eine gute Idee die Tastatureingabe oder den Mausklick fürs Minimieren mittels eines Befehls zu simmulieren?<br />
Für simulierte Tastendrücke gibt es ja glaube ich was namens keybd_event ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142243/nachrichten-an-windows-fenster-beeinflussen-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 02:51:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142243.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Mar 2006 22:22:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nachrichten an Windows Fenster beeinflussen - Problem on Tue, 28 Mar 2006 22:22:23 GMT]]></title><description><![CDATA[<p>Ich bin gerade dabei unter WIN XP mit Visual Studio C++ den Sourcecode eines Utilitys zum Verkleinern von Programmen in die Trayleiste an meine Wünsche anzupassen.<br />
Da ich mich mit dem ganzen Windows Benachrichtigungssystem noch nie beschäftig habe, komm ich da bei einem Problem leider nicht weiter.</p>
<p>Da Programm funktioniert so, dass beim Klicken auf das <strong>Minimieren</strong> Symbol die auftetende Benachrichtigungs-Meldung in einer eigenen <strong>WndProc Funktion</strong> zum <strong>Windows Nachrichten</strong> verarbeiten aufgeschnappt wird und eine passende Unterfunktion aufruft die dann wiederum eine für die <strong>WM_SYSCOMMAND Notification</strong> mit dem Wert <strong>SC_MINIMIZE</strong> passende Unterfunktion aufruft.<br />
Dort wird dann mit letztendlich mit</p>
<blockquote>
<p>Shell_NotifyIcon( NIM_ADD, &amp;p-&gt;nid );</p>
<p>if(ShowWindowAsync( p-&gt;hWnd, SW_HIDE ) )</p>
</blockquote>
<p>das jeweils gewünschte Programm von der Taskleiste in den Tray verschoben.</p>
<p>Mit einem Klick im Tray wird dann mittels:</p>
<blockquote>
<p>PostMessage( p-&gt;hWnd, WM_SYSCOMMAND, SC_RESTORE, 0 );<br />
SetForegroundWindow( p-&gt;hWnd );<br />
Shell_NotifyIcon( NIM_DELETE, &amp;p-&gt;nid );<br />
DestroyIcon( p-&gt;nid.hIcon );</p>
</blockquote>
<p>das jeweilige Programm zurück in die Taskleiste und den Vordergrund geholt.</p>
<p><strong>Ich</strong> habe diesen ganzen Code nun um ein paar Zeilen erweitert die dafür sorgen sollen das auch beim Klicken auf die Kopfzeile ( die blaue Leiste) die jeweilige Anwendung in den Tray minimiert wird weil das Minimieren Symbol so klein ist. Dabei werden einfach wenn eine <strong>WM_SYSCOMMAND Notification</strong> mit dem Wert <strong>SC_MOVE</strong> auftritt die obigen Funktionen vom Minimieren aufgerufen und es läuft alles somit identisch ab.</p>
<p>Das funktioniert auch genauso gut wie das eigentliche Minimieren und im Debugger werden die absolut gleichen Werte und Handles angezeigt nur in einer gewissen Situation hat das Kopfzeilen-Minimieren nachfolgend Probleme bereitet:<br />
Die minimierte Anwendung hat nähmlich die Fähigkeit sich selbt wieder einzublenden. Wenn ich sie jedoch zuvor mittels Kopfzeilen-Minimieren minimiert habe blendet sich die Anwendung nicht mehr selber ein obwohl das eben sehr wichtig für mich wäre.</p>
<p>Ich hätte jetzt eben gerne Tipps wie ich dem Problem beikommen kann:</p>
<p>1). Obwohl sobald eine <strong>WM_SYSCOMMAND Notification</strong> mit dem Wert <strong>SC_MOVE</strong> oder <strong>SC_MINIMIZE</strong> auffange der selbe Code aufgrufen wird scheint irgendwas anders zu sein.<br />
Irgendwas muss also Windows im Hintergrund anscheinend anders lassen weil das spätere Verhalten der Anwendung eben anders ist. Hat jemand eine Idee ob man da irgendwas machen kann?</p>
<p>2.) Kann man irgendwie mittels eines Befehls das Ereignis/Nachricht/wasauchimmer das beim Klicken auf das Minimieren Symbol rechts oben passiert simullieren?</p>
<p>3.) Oder wäre es eine gute Idee die Tastatureingabe oder den Mausklick fürs Minimieren mittels eines Befehls zu simmulieren?<br />
Für simulierte Tastendrücke gibt es ja glaube ich was namens keybd_event ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1025998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1025998</guid><dc:creator><![CDATA[dannym]]></dc:creator><pubDate>Tue, 28 Mar 2006 22:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichten an Windows Fenster beeinflussen - Problem on Wed, 29 Mar 2006 06:11:40 GMT]]></title><description><![CDATA[<blockquote>
<p>2.) Kann man irgendwie mittels eines Befehls das Ereignis/Nachricht/wasauchimmer das beim Klicken auf das Minimieren Symbol rechts oben passiert simullieren?</p>
</blockquote>
<p>Schau dir mal WM_NCHITTEST an.</p>
<p>Und dann einfach den Trick von <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=81861" rel="nofollow">hier</a> ganz unten Seite 1 an deine Bedürfnisse anpassen. <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/1026061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026061</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 29 Mar 2006 06:11:40 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichten an Windows Fenster beeinflussen - Problem on Wed, 29 Mar 2006 12:37:33 GMT]]></title><description><![CDATA[<p>Hmm, da weiß ich jetzt aber nicht wie mir das WM_NCHITTEST Notification helfen soll, die führt wohl eher zum selben Ergebnis wie das Verhalten beim Klicken auf die Titelleiste.<br />
Ich suche da aber was was wie ich die WM_SYSCOMMAND Notification mit dem Wert SC_MINIMIZE auslösen kann. Und eine API nahe Lösung wäre mir da auch lieber als MFC, hätte da wohl besser das andere Forum nehmen sollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026443</guid><dc:creator><![CDATA[dannym]]></dc:creator><pubDate>Wed, 29 Mar 2006 12:37:33 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichten an Windows Fenster beeinflussen - Problem on Wed, 29 Mar 2006 12:41:41 GMT]]></title><description><![CDATA[<p>Soll ich dich verschieben? <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/1026446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026446</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 29 Mar 2006 12:41:41 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichten an Windows Fenster beeinflussen - Problem on Wed, 29 Mar 2006 13:41:40 GMT]]></title><description><![CDATA[<p>dannym ist sooooooooo eingebildet.<br />
bin sicher er ist unangenehm mit seinen Kollegen in der Arbeit .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026503</guid><dc:creator><![CDATA[dokdok]]></dc:creator><pubDate>Wed, 29 Mar 2006 13:41:40 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichten an Windows Fenster beeinflussen - Problem on Fri, 31 Mar 2006 06:14:37 GMT]]></title><description><![CDATA[<p>Ja bitte <strong>verschieben</strong>, vielleicht weiß dort jemand auf Win API Ebene was wie man da was simulieren kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1027630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1027630</guid><dc:creator><![CDATA[dannym]]></dc:creator><pubDate>Fri, 31 Mar 2006 06:14:37 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichten an Windows Fenster beeinflussen - Problem on Fri, 31 Mar 2006 06:22:37 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=9713" rel="nofollow">estartu</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=1" rel="nofollow">MFC (Visual C++)</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1027635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1027635</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Fri, 31 Mar 2006 06:22:37 GMT</pubDate></item></channel></rss>