<?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[Eigenen Button in der Taskleiste subclassen]]></title><description><![CDATA[<p>Hi,<br />
ich habe eine Doppelreihige-Win-XP-Taskleiste, bei der der Startbutton in der oberen Reihe ist. Nun habe ich mir, in meinem jugendlichen Leichtsinn, gedacht, dass ich dort Buttons &quot;hinklebe&quot;.</p>
<p>Ok, soweit, so schlecht.</p>
<p>Mein Ansatz:</p>
<pre><code class="language-cpp">switch (iMsg)
	{	
		case WM_CREATE:
            //handle der Taskleiste
			hwndTask = FindWindow (&quot;Shell_TrayWnd&quot;, NULL);
			//button
			foo = CreateWindowEx(0, &quot;Button&quot;, &quot;X&quot;, WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
                       0, 40, 20, 20, hwndTask, (HMENU) 2547, NULL, 0);
			//subclassen
			LPtr = SetWindowLongPtr (hwndTask, GWLP_WNDPROC, (LONG_PTR) NewWndProc);
                        break;

//........//

//sub proc
LRESULT CALLBACK NewWndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
	//LRESULT lResult;

	switch(iMsg)
	{
		case WM_COMMAND:
			switch (HIWORD(wParam))
			{
				case BN_CLICKED:
					switch (LOWORD(wParam))
					{
						case 2547: 
                         //nur kommt niemals ne box ...
							MessageBox(0, &quot;hh&quot;, &quot;hh&quot;, 0);
							break;
					}
					break;
			}
			break;
	}

	return CallWindowProc((WNDPROC)LPtr, hwnd, iMsg, wParam, lParam);;
}
</code></pre>
<p>Wie es scheint, wird die NewWndProc garnicht aufgerufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> .</p>
<p>Ich seh gerade den berühmten Wald nicht. <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="🙄"
    /><br />
Ansonsten kommt wie gesagt keine MsgBox.</p>
<p>Könnte mir jemand erklären warum nicht, bzw. wie ich es anstell, dass ich (meine Anwendung) benachichtigt werde, dass der Button gedrückt wurde?</p>
<p>mfG ein.brot Danke! <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/100565/eigenen-button-in-der-taskleiste-subclassen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 16:28:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/100565.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Feb 2005 15:22:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eigenen Button in der Taskleiste subclassen on Tue, 08 Feb 2005 15:22:41 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe eine Doppelreihige-Win-XP-Taskleiste, bei der der Startbutton in der oberen Reihe ist. Nun habe ich mir, in meinem jugendlichen Leichtsinn, gedacht, dass ich dort Buttons &quot;hinklebe&quot;.</p>
<p>Ok, soweit, so schlecht.</p>
<p>Mein Ansatz:</p>
<pre><code class="language-cpp">switch (iMsg)
	{	
		case WM_CREATE:
            //handle der Taskleiste
			hwndTask = FindWindow (&quot;Shell_TrayWnd&quot;, NULL);
			//button
			foo = CreateWindowEx(0, &quot;Button&quot;, &quot;X&quot;, WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
                       0, 40, 20, 20, hwndTask, (HMENU) 2547, NULL, 0);
			//subclassen
			LPtr = SetWindowLongPtr (hwndTask, GWLP_WNDPROC, (LONG_PTR) NewWndProc);
                        break;

//........//

//sub proc
LRESULT CALLBACK NewWndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
	//LRESULT lResult;

	switch(iMsg)
	{
		case WM_COMMAND:
			switch (HIWORD(wParam))
			{
				case BN_CLICKED:
					switch (LOWORD(wParam))
					{
						case 2547: 
                         //nur kommt niemals ne box ...
							MessageBox(0, &quot;hh&quot;, &quot;hh&quot;, 0);
							break;
					}
					break;
			}
			break;
	}

	return CallWindowProc((WNDPROC)LPtr, hwnd, iMsg, wParam, lParam);;
}
</code></pre>
<p>Wie es scheint, wird die NewWndProc garnicht aufgerufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> .</p>
<p>Ich seh gerade den berühmten Wald nicht. <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="🙄"
    /><br />
Ansonsten kommt wie gesagt keine MsgBox.</p>
<p>Könnte mir jemand erklären warum nicht, bzw. wie ich es anstell, dass ich (meine Anwendung) benachichtigt werde, dass der Button gedrückt wurde?</p>
<p>mfG ein.brot Danke! <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/717809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/717809</guid><dc:creator><![CDATA[ein.brot]]></dc:creator><pubDate>Tue, 08 Feb 2005 15:22:41 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenen Button in der Taskleiste subclassen on Tue, 08 Feb 2005 15:32:13 GMT]]></title><description><![CDATA[<p>SetWindowLongPtr wird fehlschlagen weil es ein anderer Prozess ist.</p>
<p>vielleicht ist das was für dich? <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/bands.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/bands.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/717828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/717828</guid><dc:creator><![CDATA[trap]]></dc:creator><pubDate>Tue, 08 Feb 2005 15:32:13 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenen Button in der Taskleiste subclassen on Tue, 08 Feb 2005 15:34:53 GMT]]></title><description><![CDATA[<p>//EDIT: Mist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/717831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/717831</guid><dc:creator><![CDATA[YASC]]></dc:creator><pubDate>Tue, 08 Feb 2005 15:34:53 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenen Button in der Taskleiste subclassen on Tue, 08 Feb 2005 15:45:01 GMT]]></title><description><![CDATA[<p>trap schrieb:</p>
<blockquote>
<p>SetWindowLongPtr wird fehlschlagen weil es ein anderer Prozess ist.</p>
</blockquote>
<p>stimmt...</p>
<p>trap schrieb:</p>
<blockquote>
<p>vielleicht ist das was für dich? <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/bands.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/bands.asp</a></p>
</blockquote>
<p>Auch interessant, aber das ist der nächste Schritt in meinem Programm. [btw. woher wusstest du das? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> ]</p>
<p>Ok, dann müsste ich an den Prozess rankommen, nur wie?<br />
-&gt; Tips?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/717842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/717842</guid><dc:creator><![CDATA[ein.brot]]></dc:creator><pubDate>Tue, 08 Feb 2005 15:45:01 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenen Button in der Taskleiste subclassen on Tue, 08 Feb 2005 15:56:53 GMT]]></title><description><![CDATA[<p><a href="http://codeproject.com/threads/winspy.asp" rel="nofollow">http://codeproject.com/threads/winspy.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/717850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/717850</guid><dc:creator><![CDATA[Tips]]></dc:creator><pubDate>Tue, 08 Feb 2005 15:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenen Button in der Taskleiste subclassen on Tue, 08 Feb 2005 21:09:17 GMT]]></title><description><![CDATA[<p>Tips schrieb:</p>
<blockquote>
<p><a href="http://codeproject.com/threads/winspy.asp" rel="nofollow">http://codeproject.com/threads/winspy.asp</a></p>
</blockquote>
<p>oh... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Aber es reizt mich das zu machen.</p>
<p>Wenn noch jemand Ideeen hat, bitte immer her damit! Ansonsten werd ich mir das mal genauer ansehen.</p>
<p>[edit_2] Hm.. eigentlich hatte ich das hier editiert... egal[/edit_2]<br />
[edit]<br />
Danke noch mal an den &quot;Tips&quot; ich hab die Variante mit der Hook Dll [HookInjEx] genommen und funktioniert einwandfrei!<br />
[/edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/717911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/717911</guid><dc:creator><![CDATA[ein.brot]]></dc:creator><pubDate>Tue, 08 Feb 2005 21:09:17 GMT</pubDate></item></channel></rss>