<?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[CStatic soll auf WM_MOUSEHOVER &amp;amp; WM_MOUSELEAVE hören]]></title><description><![CDATA[<p>Moin,<br />
ich hab ein CStatic wo ein BMP angezeigt wird, dies soll sich ändern, wenn man mit der Maus drüber fährt. Hab auch schon einiges hier im FAQ darüber gefunden.<br />
Meiner meinung nach müße meine Klasse auch funktionieren aber mein Computer ist da anderer ansicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
Mein Code sieht wie folgt aus:</p>
<p>.h:</p>
<pre><code class="language-cpp">////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
class CStaticButton : public CStatic   
{ 
public: 
	CStaticButton(){}; 
	virtual ~CStaticButton(){}; 
	virtual LRESULT WindowProc(UINT message, WPARAM w, LPARAM l);
	virtual void PreSubclassWindow() ;
};
////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
</code></pre>
<p>.cpp:</p>
<pre><code class="language-cpp">////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
void CStaticButton::PreSubclassWindow()
{
	CStatic::PreSubclassWindow();
	ModifyStyle(0, SS_NOTIFY);
	TRACKMOUSEEVENT stTME;

	stTME.cbSize      = sizeof(stTME);
	stTME.dwFlags     = TME_HOVER | TME_LEAVE;
	stTME.hwndTrack   = GetSafeHwnd();
	stTME.dwHoverTime = HOVER_DEFAULT;

	BOOL bRet = _TrackMouseEvent(&amp;stTME);
	if (bRet == 0)
		TRACE(&quot;(CStaticButton) PreSubclassWindow() : _TrackMouseEvent failed [error code = %lu]\n&quot;, GetLastError());
}
////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
LRESULT CStaticButton::WindowProc(UINT message, WPARAM w, LPARAM l)
{
	switch(message)
	{
	case WM_MOUSEHOVER: MessageBox(&quot;HOVER&quot;); break; // wie so wird das nicht ausgelöst
	case WM_MOUSELEAVE: MessageBox(&quot;LEAVE&quot;); break; // dies wird 4x beim start aufreufen und dann nicht mehr
	}

	return(CStatic::WindowProc(message, w, l));
}
////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
</code></pre>
<p>wie so geht das nicht *wunder* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Einer eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/45626/cstatic-soll-auf-wm_mousehover-amp-wm_mouseleave-hören</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 05:17:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/45626.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Aug 2003 12:14:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CStatic soll auf WM_MOUSEHOVER &amp;amp; WM_MOUSELEAVE hören on Tue, 12 Aug 2003 12:14:03 GMT]]></title><description><![CDATA[<p>Moin,<br />
ich hab ein CStatic wo ein BMP angezeigt wird, dies soll sich ändern, wenn man mit der Maus drüber fährt. Hab auch schon einiges hier im FAQ darüber gefunden.<br />
Meiner meinung nach müße meine Klasse auch funktionieren aber mein Computer ist da anderer ansicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
Mein Code sieht wie folgt aus:</p>
<p>.h:</p>
<pre><code class="language-cpp">////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
class CStaticButton : public CStatic   
{ 
public: 
	CStaticButton(){}; 
	virtual ~CStaticButton(){}; 
	virtual LRESULT WindowProc(UINT message, WPARAM w, LPARAM l);
	virtual void PreSubclassWindow() ;
};
////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
</code></pre>
<p>.cpp:</p>
<pre><code class="language-cpp">////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
void CStaticButton::PreSubclassWindow()
{
	CStatic::PreSubclassWindow();
	ModifyStyle(0, SS_NOTIFY);
	TRACKMOUSEEVENT stTME;

	stTME.cbSize      = sizeof(stTME);
	stTME.dwFlags     = TME_HOVER | TME_LEAVE;
	stTME.hwndTrack   = GetSafeHwnd();
	stTME.dwHoverTime = HOVER_DEFAULT;

	BOOL bRet = _TrackMouseEvent(&amp;stTME);
	if (bRet == 0)
		TRACE(&quot;(CStaticButton) PreSubclassWindow() : _TrackMouseEvent failed [error code = %lu]\n&quot;, GetLastError());
}
////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
LRESULT CStaticButton::WindowProc(UINT message, WPARAM w, LPARAM l)
{
	switch(message)
	{
	case WM_MOUSEHOVER: MessageBox(&quot;HOVER&quot;); break; // wie so wird das nicht ausgelöst
	case WM_MOUSELEAVE: MessageBox(&quot;LEAVE&quot;); break; // dies wird 4x beim start aufreufen und dann nicht mehr
	}

	return(CStatic::WindowProc(message, w, l));
}
////////////////////////////////////////////////////////////\\///////////////////////////////////////////////////////////////
</code></pre>
<p>wie so geht das nicht *wunder* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Einer eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/330084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/330084</guid><dc:creator><![CDATA[G-Load]]></dc:creator><pubDate>Tue, 12 Aug 2003 12:14:03 GMT</pubDate></item></channel></rss>