<?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[[unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot;]]></title><description><![CDATA[<p>Hey @ll,<br />
ich wollte nochmal verdeutlichen, dass es nicht mehr um mein anfängliches Problem geht...</p>
<p>Hier mein Problem:<br />
Ich will mit SendMessage einem Button ein Bild verleihen...<br />
Ich habe 3 Phasen eingebaut an denen -falls != 0- GetLastError ausgegeben wird.</p>
<pre><code>LoadIcon:       No Failure
BM_GETIMAGE:    No Failure
BM_SETIMAGE:    No Failure
</code></pre>
<p>Würde ich auch glauben WENN der Button ein Bild bekommen würde...</p>
<pre><code class="language-cpp">LRESULT CALLBACK myBtn( HWND myWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
	bool visit = false;
	int x = 0,
		y = 0,
		err = 0;
	HICON icon;
	switch( msg )
	{
		case WM_RBUTTONUP:
			if( !isEnd )
			{
				icon = (HANDLE)SendMessage( myWnd, BM_GETIMAGE, IMAGE_ICON, (WPARAM)NULL );	//Aktuelles Icon laden
				err = GetLastError();
				switch( err )
				{
					case 0:
						printf( &quot;BM_GETIMAGE:\tNo Failure\n&quot; );
					break;
					default:
						printf( &quot;BM_GETIMAGE:\t%d\n&quot;, err );
					break;
				}

				if( icon != flag )	//Wenn der button keine flagge hat
				{
					SendMessage( myWnd, BM_SETIMAGE, (WPARAM)IMAGE_ICON, (LPARAM)(HICON)flag );
					err = GetLastError();
					switch( err )
					{
						case 0:
							printf( &quot;BM_SETIMAGE:\tNo Failure\n&quot; );
						break;
						default:
							printf( &quot;BM_SETIMAGE:\t%d\n&quot;, err );
						break;
					}
				}
				else	//Wenn der button die Flage hat
				{
					printf( &quot;enable\n&quot; );
					SendMessage( myWnd, BM_SETIMAGE, IMAGE_ICON, (WPARAM)NULL );//Flagge entfernen
				}
				visit = true;
			}
			else
				restart();
		break;
	}
	if( !visit )
		return DefWindowProc( myWnd, msg, wParam, lParam );

	return visit;
}
</code></pre>
<p>Es wird immer disable angezeigt, und die Failure-abfragen, nie enable..</p>
<p>help <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205274/unlösbar-bm_setimage-versagt-gesubbclasster-button-bleibt-quot-leer-quot</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 01:27:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205274.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Feb 2008 14:13:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Tue, 12 Feb 2008 14:13:16 GMT]]></title><description><![CDATA[<p>Hey @ll,<br />
ich wollte nochmal verdeutlichen, dass es nicht mehr um mein anfängliches Problem geht...</p>
<p>Hier mein Problem:<br />
Ich will mit SendMessage einem Button ein Bild verleihen...<br />
Ich habe 3 Phasen eingebaut an denen -falls != 0- GetLastError ausgegeben wird.</p>
<pre><code>LoadIcon:       No Failure
BM_GETIMAGE:    No Failure
BM_SETIMAGE:    No Failure
</code></pre>
<p>Würde ich auch glauben WENN der Button ein Bild bekommen würde...</p>
<pre><code class="language-cpp">LRESULT CALLBACK myBtn( HWND myWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
	bool visit = false;
	int x = 0,
		y = 0,
		err = 0;
	HICON icon;
	switch( msg )
	{
		case WM_RBUTTONUP:
			if( !isEnd )
			{
				icon = (HANDLE)SendMessage( myWnd, BM_GETIMAGE, IMAGE_ICON, (WPARAM)NULL );	//Aktuelles Icon laden
				err = GetLastError();
				switch( err )
				{
					case 0:
						printf( &quot;BM_GETIMAGE:\tNo Failure\n&quot; );
					break;
					default:
						printf( &quot;BM_GETIMAGE:\t%d\n&quot;, err );
					break;
				}

				if( icon != flag )	//Wenn der button keine flagge hat
				{
					SendMessage( myWnd, BM_SETIMAGE, (WPARAM)IMAGE_ICON, (LPARAM)(HICON)flag );
					err = GetLastError();
					switch( err )
					{
						case 0:
							printf( &quot;BM_SETIMAGE:\tNo Failure\n&quot; );
						break;
						default:
							printf( &quot;BM_SETIMAGE:\t%d\n&quot;, err );
						break;
					}
				}
				else	//Wenn der button die Flage hat
				{
					printf( &quot;enable\n&quot; );
					SendMessage( myWnd, BM_SETIMAGE, IMAGE_ICON, (WPARAM)NULL );//Flagge entfernen
				}
				visit = true;
			}
			else
				restart();
		break;
	}
	if( !visit )
		return DefWindowProc( myWnd, msg, wParam, lParam );

	return visit;
}
</code></pre>
<p>Es wird immer disable angezeigt, und die Failure-abfragen, nie enable..</p>
<p>help <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454437</guid><dc:creator><![CDATA[lippoliv]]></dc:creator><pubDate>Tue, 12 Feb 2008 14:13:16 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Tue, 12 Feb 2008 14:19:45 GMT]]></title><description><![CDATA[<p>dein Button-Child hat aber schon den BS_BITMAP oder BS_ICON style drin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454447</guid><dc:creator><![CDATA[Fake oder Echt]]></dc:creator><pubDate>Tue, 12 Feb 2008 14:19:45 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Tue, 12 Feb 2008 14:26:16 GMT]]></title><description><![CDATA[<p>Ehm und mit deinem Visit ... du kennst aber schon default: (als Zweig von switch ...) ?</p>
<p>Nimm wenn du den VC++ hast, statt immer GetLastError aufzurufen und auszuwerten, einfach @err im Watch-Window. Dann kannst du beim Step-by-Step debuggen auch immer den Wert kontrollieren.</p>
<p>Beschreib mal bitte was wo passieren soll. So wie es aussieht machst du da viel murkss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454455</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 12 Feb 2008 14:26:16 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Tue, 12 Feb 2008 14:39:40 GMT]]></title><description><![CDATA[<p>@(D)Evil: Ich programmiere in C... Mit Notepad++ (kein interner Compiler).<br />
@Fake oder echt: Ja;</p>
<p>Ok ich habe schon oft gehört ich schreibe ... murks im Code, also überflüssige Teile die leichter gehen würden. Bin ja auch erst seid knapp 5 Monaten am C programmieren...</p>
<p>Also was passieren soll:<br />
Wie man aus Minesweeper kenn gibt es Felder, die Miene/Zahl/nichts sind.<br />
Wenn sie nichts sind, werden alle umliegenden bis zu den nächsen Mienen aufgedeckt, wenn sie Zahlen sind, werden sie einfach aufgedeckt, wenn sie eine Miene sind, werden alle Mienen aufgedeckt.<br />
Damit man leichter Spielen kann, kann man Mienen mit einer fahne versehen, um zu kennzeichnen: Das ist eine Miene; ausserdem kann man dieses Feld dann nicht mehr klicken.</p>
<p>Die von mir gepostete Prozedur soll diese Fahnenmöglichkeit (und einige andere) stellen.<br />
Ist die Fahne gesetzt, soll sie entfernt werden, wenn sie nicht gesetzt ist, soll sie gesetzt werden.</p>
<p>Ich wollte dies durch den vergleich der durch GETIMAGE und LoadImage erhaltenen HICON-HANDLEs tun, was meiner meinung auch funktioniert, allerdings, wie gepostet, wird nie eine Fahne/ein Bild gesetzt...</p>
<p>[eidt]</p>
<pre><code class="language-cpp">flag = LoadImage( hInstance, &quot;flag1.ico&quot;, IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1454464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454464</guid><dc:creator><![CDATA[lippoliv]]></dc:creator><pubDate>Tue, 12 Feb 2008 14:39:40 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Tue, 12 Feb 2008 14:42:24 GMT]]></title><description><![CDATA[<p>lippoliv schrieb:</p>
<blockquote>
<p>Ist die Fahne gesetzt, soll sie entfernt werden, wenn sie nicht gesetzt ist, soll sie gesetzt werden.</p>
<p>Ich wollte dies durch den vergleich der durch GETIMAGE und LoadImage erhaltenen HICON-HANDLEs tun, was meiner meinung auch funktioniert, allerdings, wie gepostet, wird nie eine Fahne/ein Bild gesetzt...</p>
</blockquote>
<p>Ein allgemeiner Tipp: Benutze nicht dein UI, um den Zustand deines Spiels zu speichern.</p>
<p>Ach ja: Es schreibt sich &quot;Mine&quot;. Miene ist der Gesichtsausdruck.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454471</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 12 Feb 2008 14:42:24 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Tue, 12 Feb 2008 14:43:24 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/2803">@MFK</a>: danke...<br />
UI? Was ist das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454473</guid><dc:creator><![CDATA[lippoliv]]></dc:creator><pubDate>Tue, 12 Feb 2008 14:43:24 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Tue, 12 Feb 2008 14:44:51 GMT]]></title><description><![CDATA[<p>lippoliv schrieb:</p>
<blockquote>
<p>UI? Was ist das?</p>
</blockquote>
<p>User Interface. Benutzerschnittstelle. Das, was der Benutzer von deinem Programm sieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454475</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 12 Feb 2008 14:44:51 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Tue, 12 Feb 2008 14:47:40 GMT]]></title><description><![CDATA[<p>GUI ist da glaube ich gängiger?!...<br />
naja ich könnts auch wieder in einer einfach verketteten Liste machen, aber ich wollt davon nich so ewig viele nutzen(aber eig ises erst eins...).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454480</guid><dc:creator><![CDATA[lippoliv]]></dc:creator><pubDate>Tue, 12 Feb 2008 14:47:40 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Thu, 14 Feb 2008 06:41:44 GMT]]></title><description><![CDATA[<p>wollt ihr den gesamten Quellcode?<br />
Stell den ma hier on: <a href="http://nopaste.info/2d6ee453b2_nl.html" rel="nofollow">http://nopaste.info/2d6ee453b2_nl.html</a></p>
<p>Geht allerdings noch nicht alles, da ich jetzt diese Liste eingebaut habe (für geflaggt und nicht gefalggt...)...</p>
<p>Hoffe ihr könnt zu den Buttons was sagen... MFG und Danke...</p>
<p>[edit]<br />
Ziemlich komisch: ich habe mal ein einem anderen Projekt, wo ich keine subclass für die buttons habe, genau diesen code verwendet um Icons auf die Buttoons zu legen, und es funktionierte. <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="😮"
    /> Es liegt also an der subclass? Aber wofür ist dann DefWindowProc(...) eigentlich? Macht der nicht die Standardaktionen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454841</guid><dc:creator><![CDATA[lippoliv]]></dc:creator><pubDate>Thu, 14 Feb 2008 06:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Wed, 09 Apr 2008 12:56:11 GMT]]></title><description><![CDATA[<p>Immer noch aktuell... Weiß da wer nen Tipp?<br />
<a href="http://nopaste.info/bb0d4c8361.html" rel="nofollow">http://nopaste.info/bb0d4c8361.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489063</guid><dc:creator><![CDATA[lippoliv]]></dc:creator><pubDate>Wed, 09 Apr 2008 12:56:11 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Wed, 09 Apr 2008 13:03:30 GMT]]></title><description><![CDATA[<p>subclass -&gt; CallWindowProc ()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489076</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 Apr 2008 13:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to [unlösbar]BM_SETIMAGE versagt, gesubbclasster button bleibt &amp;quot;leer&amp;quot; on Wed, 09 Apr 2008 13:24:56 GMT]]></title><description><![CDATA[<p>Hey Danke... Jetzt funktionierts...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489105</guid><dc:creator><![CDATA[lippoliv]]></dc:creator><pubDate>Wed, 09 Apr 2008 13:24:56 GMT</pubDate></item></channel></rss>