<?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[Problem bei MoveWindow mit 2 Statics]]></title><description><![CDATA[<p>Und wieder mal habe ich eine Frage.<br />
Hier kommt erstmal der Quelltext:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND hWnd1, UINT message, WPARAM wParam, LPARAM lParam)
{
	static HANDLE hBitmap;
	static HWND static_image;

	static HANDLE hBack;
	static HWND static_back;

	int field_x = 50;
	int field_y = 50;

	switch (message)
	{
	case WM_CREATE:
			hBack = LoadImage (GetModuleHandle (NULL), &quot;back.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE); //Hintergrund laden
			static_back = CreateWindow (&quot;static&quot;, NULL, WS_VISIBLE | WS_CHILD | SS_ICON, field_x, field_y, 500, 500, hWnd1, NULL, GetModuleHandle (NULL), NULL);
			SendMessage (static_back, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBack);

			hBitmap = LoadImage (GetModuleHandle (NULL), &quot;up.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE); //Figurbild laden
			static_image = CreateWindow (&quot;static&quot;, NULL, WS_VISIBLE | WS_CHILD | SS_ICON, 125, 125, NULL, NULL, hWnd1, NULL, GetModuleHandle (NULL), NULL);
			SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
		return 0;

		case WM_KEYUP:
			switch (wParam)
			{
				case VK_ESCAPE:
					PostQuitMessage (0);
				return 0;

				case VK_UP:
					if (field_y &lt;= 125)
					{
						field_y += 25;
						MoveWindow (static_back, field_x, field_y, 500, 500, true);
						MoveWindow (static_image, 125, 125, NULL, NULL, true);
					}

					hBitmap = LoadImage (GetModuleHandle (NULL), &quot;up.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
					SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
				return 0;

				case VK_DOWN:
					if (field_y &gt;= 0)
					{
						field_y -= 25;
						MoveWindow (static_back, field_x, field_y, 500, 500, true);
						ShowWindow (static_image, SW_SHOWNORMAL);
					}

					hBitmap = LoadImage (GetModuleHandle (NULL), &quot;down.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
					SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
				return 0;

				case VK_LEFT:
					if (field_x &lt;= 125)
					{
						field_x += 25;
						MoveWindow (static_back, field_x, field_y, 500, 500, true);
						MoveWindow (static_image, 125, 125, NULL, NULL, true);
					}

					hBitmap = LoadImage (GetModuleHandle (NULL), &quot;left.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
					SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
				return 0;

				case VK_RIGHT:
					if (field_x &gt;= 0)
					{
						field_x -= 25;
						MoveWindow (static_back, field_x, field_y, 500, 500, true);
						MoveWindow (static_image, 125, 125, NULL, NULL, true);
					}

					hBitmap = LoadImage (GetModuleHandle (NULL), &quot;right.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
					SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
				return 0;
			}
		return 0;

		case WM_DESTROY:
			DeleteObject (hBitmap);
			DeleteObject (hBack);
			PostQuitMessage (0);
	    return 0;
	}
	return DefWindowProc (hWnd1, message, wParam, lParam);
}
</code></pre>
<p>Folgendes Problem: Wenn ich jetzt z.B. die Linke Pfeiltaste drücke, geht das Feld wie gewünscht weiter. Allerdings bleibt die Figur nicht an ihrem Ursprungsort, sondern sie geht mit dem Hintergrund mit. Außerdem ist sie nur noch in Bruchstücken sichtbar. Zusätzlich zu diesem Problem lässt sich der Hintergrund auch nur einmal in jede Richtung verschieben. Ich vermute, dass das an der Funktion MoveWindow() liegt, aber ich weiß nicht, wie ich das Problen beheben kann. Ich hoffe ihr habt mich einigermaßen verstanden.</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/139455/problem-bei-movewindow-mit-2-statics</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 03:48:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/139455.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Mar 2006 20:41:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem bei MoveWindow mit 2 Statics on Tue, 07 Mar 2006 15:40:16 GMT]]></title><description><![CDATA[<p>Und wieder mal habe ich eine Frage.<br />
Hier kommt erstmal der Quelltext:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND hWnd1, UINT message, WPARAM wParam, LPARAM lParam)
{
	static HANDLE hBitmap;
	static HWND static_image;

	static HANDLE hBack;
	static HWND static_back;

	int field_x = 50;
	int field_y = 50;

	switch (message)
	{
	case WM_CREATE:
			hBack = LoadImage (GetModuleHandle (NULL), &quot;back.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE); //Hintergrund laden
			static_back = CreateWindow (&quot;static&quot;, NULL, WS_VISIBLE | WS_CHILD | SS_ICON, field_x, field_y, 500, 500, hWnd1, NULL, GetModuleHandle (NULL), NULL);
			SendMessage (static_back, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBack);

			hBitmap = LoadImage (GetModuleHandle (NULL), &quot;up.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE); //Figurbild laden
			static_image = CreateWindow (&quot;static&quot;, NULL, WS_VISIBLE | WS_CHILD | SS_ICON, 125, 125, NULL, NULL, hWnd1, NULL, GetModuleHandle (NULL), NULL);
			SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
		return 0;

		case WM_KEYUP:
			switch (wParam)
			{
				case VK_ESCAPE:
					PostQuitMessage (0);
				return 0;

				case VK_UP:
					if (field_y &lt;= 125)
					{
						field_y += 25;
						MoveWindow (static_back, field_x, field_y, 500, 500, true);
						MoveWindow (static_image, 125, 125, NULL, NULL, true);
					}

					hBitmap = LoadImage (GetModuleHandle (NULL), &quot;up.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
					SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
				return 0;

				case VK_DOWN:
					if (field_y &gt;= 0)
					{
						field_y -= 25;
						MoveWindow (static_back, field_x, field_y, 500, 500, true);
						ShowWindow (static_image, SW_SHOWNORMAL);
					}

					hBitmap = LoadImage (GetModuleHandle (NULL), &quot;down.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
					SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
				return 0;

				case VK_LEFT:
					if (field_x &lt;= 125)
					{
						field_x += 25;
						MoveWindow (static_back, field_x, field_y, 500, 500, true);
						MoveWindow (static_image, 125, 125, NULL, NULL, true);
					}

					hBitmap = LoadImage (GetModuleHandle (NULL), &quot;left.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
					SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
				return 0;

				case VK_RIGHT:
					if (field_x &gt;= 0)
					{
						field_x -= 25;
						MoveWindow (static_back, field_x, field_y, 500, 500, true);
						MoveWindow (static_image, 125, 125, NULL, NULL, true);
					}

					hBitmap = LoadImage (GetModuleHandle (NULL), &quot;right.ico&quot;, IMAGE_ICON, NULL, NULL, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
					SendMessage (static_image, STM_SETIMAGE, (WPARAM) IMAGE_ICON, (LPARAM)(HANDLE) hBitmap);
				return 0;
			}
		return 0;

		case WM_DESTROY:
			DeleteObject (hBitmap);
			DeleteObject (hBack);
			PostQuitMessage (0);
	    return 0;
	}
	return DefWindowProc (hWnd1, message, wParam, lParam);
}
</code></pre>
<p>Folgendes Problem: Wenn ich jetzt z.B. die Linke Pfeiltaste drücke, geht das Feld wie gewünscht weiter. Allerdings bleibt die Figur nicht an ihrem Ursprungsort, sondern sie geht mit dem Hintergrund mit. Außerdem ist sie nur noch in Bruchstücken sichtbar. Zusätzlich zu diesem Problem lässt sich der Hintergrund auch nur einmal in jede Richtung verschieben. Ich vermute, dass das an der Funktion MoveWindow() liegt, aber ich weiß nicht, wie ich das Problen beheben kann. Ich hoffe ihr habt mich einigermaßen verstanden.</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010091</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Tue, 07 Mar 2006 15:40:16 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei MoveWindow mit 2 Statics on Mon, 06 Mar 2006 20:48:52 GMT]]></title><description><![CDATA[<p>Ist das eigentlich festgelegt, welches Fenster zuerst gezeichnet wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010101</guid><dc:creator><![CDATA[qwsdfghmj]]></dc:creator><pubDate>Mon, 06 Mar 2006 20:48:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei MoveWindow mit 2 Statics on Tue, 07 Mar 2006 15:39:24 GMT]]></title><description><![CDATA[<p>Zuerst wird das Fenster mit dem Hintergrund und dann das Fenster mit der Figur geladen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010633</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Tue, 07 Mar 2006 15:39:24 GMT</pubDate></item></channel></rss>