<?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 WinAPI+GDI]]></title><description><![CDATA[<p>Hi,</p>
<p>also ich hab da ein problem bei folgendem code:</p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;wingdi.h&gt;
#define T1 1

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     static char szAppName[] = &quot;Name&quot; ;
     HWND        hwnd ;
     MSG         msg ;
     WNDCLASSEX  wndclass ;

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (NULL, IDI_APPLICATION) ;

     RegisterClassEx (&amp;wndclass) ;

     hwnd = CreateWindow (szAppName, &quot;WinAPI&quot;, WS_OVERLAPPEDWINDOW,
			  CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
			  NULL, NULL, hInstance, NULL) ;	

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&amp;msg, NULL, 0, 0))
          {
          TranslateMessage (&amp;msg) ;
          DispatchMessage (&amp;msg) ;
          }
     return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
     HDC         hdc ;
     PAINTSTRUCT ps ;
     HPEN	 hPen;

     int a = 10, b = 10, x = 0;
     switch (iMsg)
          {
           case WM_CREATE:
                SetTimer(hwnd,T1,1000,NULL);
                return 0;

           case WM_TIMER:
	       if(wParam==T1 &amp;&amp; x &lt; 10)
                {
                   MessageBox(0,&quot;bvg&quot;,&quot;gfvb&quot;,0);
                   hdc = BeginPaint(hwnd, &amp;ps);
	          hPen = CreatePen (PS_SOLID, 0, RGB(255,0,0));
                   SelectObject(hdc, GetStockObject(BLACK_BRUSH));
                   SelectObject(hdc, hPen);
                   Rectangle(hdc,a,b,100,100);
                   a+20;
                   b+20;
                   x++;
                   EndPaint(hwnd, &amp;ps);
                   DeleteObject(hPen);
                }

		        break;

           case WM_PAINT:

		        return 0 ;

          case WM_DESTROY:
		       PostQuitMessage (0) ;
		       KillTimer(hwnd, T1);
		       return 0 ;

         case WM_KEYDOWN:

                break;

          }

     return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
</code></pre>
<p>eigentlich soll das program jede sekunde ein Rechteck versetzt einzeichnen (insgesamt 10mal).</p>
<p>Sieht evtl. jemand meinen Fehler und kann mir helfen? <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>Schonmal danke im voraus<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127026/problem-winapi-gdi</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 10:39:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127026.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Nov 2005 18:56:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem WinAPI+GDI on Sun, 20 Nov 2005 18:56:36 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also ich hab da ein problem bei folgendem code:</p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;wingdi.h&gt;
#define T1 1

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     static char szAppName[] = &quot;Name&quot; ;
     HWND        hwnd ;
     MSG         msg ;
     WNDCLASSEX  wndclass ;

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (NULL, IDI_APPLICATION) ;

     RegisterClassEx (&amp;wndclass) ;

     hwnd = CreateWindow (szAppName, &quot;WinAPI&quot;, WS_OVERLAPPEDWINDOW,
			  CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
			  NULL, NULL, hInstance, NULL) ;	

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&amp;msg, NULL, 0, 0))
          {
          TranslateMessage (&amp;msg) ;
          DispatchMessage (&amp;msg) ;
          }
     return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
     HDC         hdc ;
     PAINTSTRUCT ps ;
     HPEN	 hPen;

     int a = 10, b = 10, x = 0;
     switch (iMsg)
          {
           case WM_CREATE:
                SetTimer(hwnd,T1,1000,NULL);
                return 0;

           case WM_TIMER:
	       if(wParam==T1 &amp;&amp; x &lt; 10)
                {
                   MessageBox(0,&quot;bvg&quot;,&quot;gfvb&quot;,0);
                   hdc = BeginPaint(hwnd, &amp;ps);
	          hPen = CreatePen (PS_SOLID, 0, RGB(255,0,0));
                   SelectObject(hdc, GetStockObject(BLACK_BRUSH));
                   SelectObject(hdc, hPen);
                   Rectangle(hdc,a,b,100,100);
                   a+20;
                   b+20;
                   x++;
                   EndPaint(hwnd, &amp;ps);
                   DeleteObject(hPen);
                }

		        break;

           case WM_PAINT:

		        return 0 ;

          case WM_DESTROY:
		       PostQuitMessage (0) ;
		       KillTimer(hwnd, T1);
		       return 0 ;

         case WM_KEYDOWN:

                break;

          }

     return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
</code></pre>
<p>eigentlich soll das program jede sekunde ein Rechteck versetzt einzeichnen (insgesamt 10mal).</p>
<p>Sieht evtl. jemand meinen Fehler und kann mir helfen? <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>Schonmal danke im voraus<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/922541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/922541</guid><dc:creator><![CDATA[xehon]]></dc:creator><pubDate>Sun, 20 Nov 2005 18:56:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Sun, 20 Nov 2005 20:02:37 GMT]]></title><description><![CDATA[<p>Begin-/EndPaint gehört ausschließlich nach WM_PAINT - und sollte dort auch aufgerufen werden, wenn du WM_PAINT abfängst. Bei dem was du machen willst, rufst du einfach in WM_TIMER InvalidateRect auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/922594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/922594</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sun, 20 Nov 2005 20:02:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Sun, 20 Nov 2005 20:07:55 GMT]]></title><description><![CDATA[<p>In die WM_TIMER Nachricht darfst Du nur das verschieben der Koordinaten packen und dann einfach InvalidateRect aufrufen. Das Zeichnen dann ganz normal in WM_PAINT machen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/922602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/922602</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 20 Nov 2005 20:07:55 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Mon, 21 Nov 2005 14:56:06 GMT]]></title><description><![CDATA[<p>Cool, schonmal danke für die Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>aber jetzt hab ich noch eion problem:</p>
<pre><code class="language-cpp">int i = 0;
     int l = 10, r = 60;
     switch (iMsg)
          {
           case WM_CREATE:
                SetTimer(hwnd,T1,1000,NULL);
                return 0;

           case WM_TIMER:
		        if(wParam==T1 &amp;&amp; i &lt; 10)
                {
                RECT myRECT;
                myRECT.left = l;
                myRECT.top = 475;
                myRECT.right = r;
                myRECT.bottom = 425;
                InvalidateRect(hwnd, myRECT, false);
                l += 50;
                r += 50;
                i++;
                }
                .....
</code></pre>
<p>In der Zeile mit der Funktion InvalidateRect() mault mein compiler:</p>
<pre><code>cannot convert `RECT' to `const RECT*' for argument `2' to `BOOL InvalidateRect(HWND__*, const RECT*, BOOL)'
</code></pre>
<p>Hat jemand eine Ahnung wie man RECT konstant machen kann?</p>
<p>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/923389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923389</guid><dc:creator><![CDATA[xehon]]></dc:creator><pubDate>Mon, 21 Nov 2005 14:56:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Mon, 21 Nov 2005 18:51:07 GMT]]></title><description><![CDATA[<p>Entscheidend ist das &quot;*&quot; <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=";D"
      alt="😉"
    /><br />
InvalidateRect() möchte gerne einen Zeiger auf myRECT haben:</p>
<pre><code class="language-cpp">RECT myRECT;
// [..]
InvalidateRect(hwnd, &amp;myRECT, false);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/923646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923646</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Mon, 21 Nov 2005 18:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Mon, 21 Nov 2005 19:36:36 GMT]]></title><description><![CDATA[<p>Ich würde empfehlen anstelle von &quot;myRECT&quot; einfach &quot;NULL&quot; zu übergeben, da sonst das Zeichnen nicht ganz stimmt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923704</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 21 Nov 2005 19:36:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Tue, 22 Nov 2005 18:43:54 GMT]]></title><description><![CDATA[<p>Erstmal vielen dank für die Hilfe, funktionieren aber beide leider nicht so richtig....</p>
<p>Hat jemand eine Idee an was es sonst liegen kann?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/924626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/924626</guid><dc:creator><![CDATA[xehon]]></dc:creator><pubDate>Tue, 22 Nov 2005 18:43:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Tue, 22 Nov 2005 19:02:28 GMT]]></title><description><![CDATA[<p>Zeigt der Compiler denn immer noch den gleichen fehler an oder ist es jetzt ein anderer?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/924638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/924638</guid><dc:creator><![CDATA[Leon++]]></dc:creator><pubDate>Tue, 22 Nov 2005 19:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Tue, 22 Nov 2005 19:06:56 GMT]]></title><description><![CDATA[<p>ich würde die variablen erst mal zu static machen!</p>
<pre><code class="language-cpp">static int i = 0;
statuc int l = 10, r = 60;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/924642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/924642</guid><dc:creator><![CDATA[Leon++]]></dc:creator><pubDate>Tue, 22 Nov 2005 19:06:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem WinAPI+GDI on Wed, 23 Nov 2005 18:55:08 GMT]]></title><description><![CDATA[<blockquote>
<p>Zeigt der Compiler denn immer noch den gleichen fehler an oder ist es jetzt ein anderer?</p>
</blockquote>
<p>Ne, ich kann des programm schon kompilieren aber des zeichnet kein Rechteck <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>ich würde die variablen erst mal zu static machen!</p>
<blockquote>
<p>C/C++ Code:<br />
static int i = 0;<br />
statuc int l = 10, r = 60;</p>
</blockquote>
<p>Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/925585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925585</guid><dc:creator><![CDATA[xehon]]></dc:creator><pubDate>Wed, 23 Nov 2005 18:55:08 GMT</pubDate></item></channel></rss>