<?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[miniPaint! bei maustastendruck malen, etwas fehlt!?!?!]]></title><description><![CDATA[<p>hallöchen ich wollte mal nen fenster kreieren in dem man mit der maus malen kann, solange man die linke m.taste gedrueckt haelt.... das klappt aber noch net wirklich so, woran kanns liegen??? HIer der code:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

LRESULT CALLBACK WinProc( HWND, UINT, WPARAM, LPARAM );
const char szAppName[] = &quot;Bemal mich !&quot;;

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine, int nCmdShow )
{
    HWND hWnd;
    MSG messages;
    WNDCLASS wc;

    wc.cbClsExtra    = NULL;
    wc.cbWndExtra    = NULL;
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = szAppName;
    wc.lpfnWndProc   = WinProc;
    wc.hInstance     = hInstance;
    wc.hIcon         = LoadIcon( NULL, IDI_APPLICATION );
    wc.hCursor       = LoadCursor( NULL, IDC_CROSS );
    wc.hbrBackground = ( HBRUSH ) GetStockObject( WHITE_BRUSH );
    wc.style         = CS_HREDRAW | CS_VREDRAW;

    if( !( RegisterClass( &amp;wc ) ) ) {

        MessageBox( NULL, &quot;Fehler bei der Registrierung des Fensters!&quot;, &quot;FEHLER!&quot;,
                    MB_OK );
        return 0;
    }

    hWnd = CreateWindow( szAppName,
                         szAppName,
                         WS_OVERLAPPEDWINDOW,
                         CW_USEDEFAULT, CW_USEDEFAULT,
                         CW_USEDEFAULT, CW_USEDEFAULT,
                         NULL,
                         NULL,
                         hInstance,
                         NULL );

    ShowWindow( hWnd, SW_SHOW );
    UpdateWindow( hWnd );

    while( GetMessage( &amp;messages, NULL, NULL, NULL ) ) {

        TranslateMessage( &amp;messages );
        DispatchMessage( &amp;messages );
    }
    return messages.wParam;
}

LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) {

    static bool draw = false;
    static mPosX;
    static mPosY;
    static COLORREF schwarz = RGB( 0, 0, 0 );

    switch( message ) {

        case WM_SIZE: {

            mPosX  = LOWORD( lParam );
            mPosY  = HIWORD( lParam );
        }

        case WM_MOUSEMOVE: {

            mPosX = LOWORD( lParam );
            mPosY = HIWORD( lParam );
        }

        case WM_LBUTTONDOWN: {

            if( wParam )
            draw = true;
        }

        case WM_LBUTTONUP: {

            if( wParam )
            draw = false;
        }

        case WM_PAINT: {

            PAINTSTRUCT ps;
            HDC hDc;

            hDc = BeginPaint( hWnd, &amp;ps ); {

                do {

                    SetPixel( hDc, mPosX, mPosY, schwarz );
                } while( draw );
            }
            EndPaint( hWnd, &amp;ps );
            return 0;
        }

        case WM_QUIT:
        case WM_DESTROY: {

            PostQuitMessage( 0 );
            return 0;
        }
    }
    return DefWindowProc( hWnd, message, wParam, lParam );
}
</code></pre>
<p>danke fuer folgende Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155332/minipaint-bei-maustastendruck-malen-etwas-fehlt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 18:21:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155332.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Aug 2006 21:23:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Fri, 04 Aug 2006 21:23:14 GMT]]></title><description><![CDATA[<p>hallöchen ich wollte mal nen fenster kreieren in dem man mit der maus malen kann, solange man die linke m.taste gedrueckt haelt.... das klappt aber noch net wirklich so, woran kanns liegen??? HIer der code:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

LRESULT CALLBACK WinProc( HWND, UINT, WPARAM, LPARAM );
const char szAppName[] = &quot;Bemal mich !&quot;;

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine, int nCmdShow )
{
    HWND hWnd;
    MSG messages;
    WNDCLASS wc;

    wc.cbClsExtra    = NULL;
    wc.cbWndExtra    = NULL;
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = szAppName;
    wc.lpfnWndProc   = WinProc;
    wc.hInstance     = hInstance;
    wc.hIcon         = LoadIcon( NULL, IDI_APPLICATION );
    wc.hCursor       = LoadCursor( NULL, IDC_CROSS );
    wc.hbrBackground = ( HBRUSH ) GetStockObject( WHITE_BRUSH );
    wc.style         = CS_HREDRAW | CS_VREDRAW;

    if( !( RegisterClass( &amp;wc ) ) ) {

        MessageBox( NULL, &quot;Fehler bei der Registrierung des Fensters!&quot;, &quot;FEHLER!&quot;,
                    MB_OK );
        return 0;
    }

    hWnd = CreateWindow( szAppName,
                         szAppName,
                         WS_OVERLAPPEDWINDOW,
                         CW_USEDEFAULT, CW_USEDEFAULT,
                         CW_USEDEFAULT, CW_USEDEFAULT,
                         NULL,
                         NULL,
                         hInstance,
                         NULL );

    ShowWindow( hWnd, SW_SHOW );
    UpdateWindow( hWnd );

    while( GetMessage( &amp;messages, NULL, NULL, NULL ) ) {

        TranslateMessage( &amp;messages );
        DispatchMessage( &amp;messages );
    }
    return messages.wParam;
}

LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) {

    static bool draw = false;
    static mPosX;
    static mPosY;
    static COLORREF schwarz = RGB( 0, 0, 0 );

    switch( message ) {

        case WM_SIZE: {

            mPosX  = LOWORD( lParam );
            mPosY  = HIWORD( lParam );
        }

        case WM_MOUSEMOVE: {

            mPosX = LOWORD( lParam );
            mPosY = HIWORD( lParam );
        }

        case WM_LBUTTONDOWN: {

            if( wParam )
            draw = true;
        }

        case WM_LBUTTONUP: {

            if( wParam )
            draw = false;
        }

        case WM_PAINT: {

            PAINTSTRUCT ps;
            HDC hDc;

            hDc = BeginPaint( hWnd, &amp;ps ); {

                do {

                    SetPixel( hDc, mPosX, mPosY, schwarz );
                } while( draw );
            }
            EndPaint( hWnd, &amp;ps );
            return 0;
        }

        case WM_QUIT:
        case WM_DESTROY: {

            PostQuitMessage( 0 );
            return 0;
        }
    }
    return DefWindowProc( hWnd, message, wParam, lParam );
}
</code></pre>
<p>danke fuer folgende Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1110835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1110835</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Fri, 04 Aug 2006 21:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Fri, 04 Aug 2006 21:56:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">static mPosX;
    static mPosY;
</code></pre>
<p>so gehts ja schon mal garnicht ohne den typ anzugeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1110853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1110853</guid><dc:creator><![CDATA[electric_juice]]></dc:creator><pubDate>Fri, 04 Aug 2006 21:56:48 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sat, 05 Aug 2006 05:31:26 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>das klappt aber noch net wirklich so</p>
</blockquote>
<p>Ganz schlechte Fehlerbeschreibung.</p>
<p>Die do-while-Schleife ist Blödsinn. Da muss ein if hin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1110889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1110889</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sat, 05 Aug 2006 05:31:26 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sat, 05 Aug 2006 12:05:15 GMT]]></title><description><![CDATA[<p>jo hab ich alles im nach hinein noch verbessert trotz allen funktioniert noch net so wie in paint das wenn ich mtaste gedrueckt halte man lustig los zeichen kann... man kann lediglich nur immer ein pixel ausfüllen... hmm hat wer ne idee, wie besser geht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111012</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sat, 05 Aug 2006 12:05:15 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sat, 05 Aug 2006 12:10:09 GMT]]></title><description><![CDATA[<p>InvalidateRect bei MouseMove genau für die pos wo die maus ist aufrufen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111019</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 05 Aug 2006 12:10:09 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sat, 05 Aug 2006 13:14:12 GMT]]></title><description><![CDATA[<p>(D)EVIL, gehts vieleicht etwas genauer was du meinst????, ich soll InvalidateRect() bei mousemove reinbasteln oder wat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111053</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sat, 05 Aug 2006 13:14:12 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sat, 05 Aug 2006 20:26:21 GMT]]></title><description><![CDATA[<p>Jop... das die Stelle immer neu gezeichnet wird...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111298</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 05 Aug 2006 20:26:21 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sun, 06 Aug 2006 09:18:58 GMT]]></title><description><![CDATA[<p>Als Info: Du kannst InvalidateRect auch nur einen Teilbereich übergeben (in Form der Rect-Struktur) der<br />
dann neu gezeichnet wird, das ist effizienter, als gleich alles neu zuzeichnen.</p>
<p>Zum testen reicht aber vllt. erstmal:</p>
<pre><code class="language-cpp">InvalidateRect(hWnd, NULL, TRUE);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1111422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111422</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 06 Aug 2006 09:18:58 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sun, 06 Aug 2006 09:58:24 GMT]]></title><description><![CDATA[<p>meinst du mit teilbereich, das ich nen childwindow fuer die rect nehmen soll? und dann InvalidateRect( hWndChild, NULL, True ) ??? so in der art?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111440</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sun, 06 Aug 2006 09:58:24 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sun, 06 Aug 2006 10:26:25 GMT]]></title><description><![CDATA[<p>Nein -.- Du machst einfach ein kleines Rect um die Mausposition und gibst das als 2. Parameter an <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/1111452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111452</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 06 Aug 2006 10:26:25 GMT</pubDate></item><item><title><![CDATA[Reply to miniPaint! bei maustastendruck malen, etwas fehlt!?!?! on Sun, 06 Aug 2006 16:53:14 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>meinst du mit teilbereich, das ich nen childwindow fuer die rect nehmen soll? und dann InvalidateRect( hWndChild, NULL, True ) ??? so in der art?</p>
</blockquote>
<p><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="😃"
    /> <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="😃"
    /> <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="😃"
    /> <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>Also so meint (D)Evil das (hoffe ich :p ):<br />
Beispiel:</p>
<pre><code class="language-cpp">// ...
        case WM_MOUSEMOVE: {

            mPosX = LOWORD( lParam );
            mPosY = HIWORD( lParam );
            RECT rcReDraw;
            rcReDraw.left   = mPosX - 5; // hängt vom 'Pinsel' ab
            rcReDraw.top    = mPosY - 5;
            rcReDraw.right  = mPosX + 5;
            rcReDraw.bottom = mPosY + 5;
            InvalidateRect(hWnd, &amp;rcReDraw, TRUE);
        }
// ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1111709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111709</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 06 Aug 2006 16:53:14 GMT</pubDate></item></channel></rss>