<?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 mit SendMessage]]></title><description><![CDATA[<p>hab folgenden Quellcode:</p>
<p>(is noch alles im Hauptfenster)</p>
<pre><code class="language-cpp">...
		hChild     = CreateWindow (	 szChildName,						// Child Fenster mit seinen Einstellungen
										szChildName,
										WS_CHILD | WS_VISIBLE | WS_DLGFRAME,
										110,
										10,
										400,
										400,
										hwnd,
										NULL,
										((LPCREATESTRUCT) lParam)-&gt;hInstance,
										NULL);
...
</code></pre>
<pre><code class="language-cpp">...	  
	case WM_LBUTTONDOWN:

		if (LOWORD(lParam)  &gt;=    0   &amp;&amp;
			LOWORD(lParam)  &lt;   100   &amp;&amp;
			HIWORD(lParam)  &gt;=    0   &amp;&amp;
			HIWORD(lParam)  &lt;   100)

		{
			SendMessage(hChild, PM_START, 0, 0);
		}

		return 0;
....
</code></pre>
<p>(jetzt kommt das Child Fenster)</p>
<pre><code class="language-cpp">...
LRESULT CALLBACK ChildProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)		// Child Fenster
{
   static RECT  rect;
   static int   cxChar, cyChar;
   HDC          hdc;
   PAINTSTRUCT  ps;

   // Bezeichner verkürzen, umbennen und Deklarieren von neuen

   switch (message)
   {
		case WM_CREATE:

			return 0;

		case WM_SIZE:

			rect.right  = LOWORD(lParam);
			rect.bottom = HIWORD(lParam);

			return 0;

		case PM_START:

			hdc = BeginPaint (hwnd, &amp;ps);

			SelectObject (hdc, GetStockObject (BLACK_PEN));	

			MoveToEx  (hdc, 130, 101, NULL);		 LineTo    (hdc, 139, 101);							
            MoveToEx  (hdc, 134,  97, NULL);		 LineTo    (hdc, 134, 106);				

			MoveToEx  (hdc, 263, 101, NULL);		 LineTo    (hdc, 272, 101);							
            MoveToEx  (hdc, 267,  97, NULL);		 LineTo    (hdc, 267, 106);				

			MoveToEx  (hdc, 130, 201, NULL);		 LineTo    (hdc, 139, 201);							
            MoveToEx  (hdc, 134, 197, NULL);		 LineTo    (hdc, 134, 206);				

			MoveToEx  (hdc, 263, 201, NULL);		 LineTo    (hdc, 272, 201);							
            MoveToEx  (hdc, 267, 197, NULL);		 LineTo    (hdc, 267, 206);				

			MoveToEx  (hdc, 130, 301, NULL);		 LineTo    (hdc, 139, 301);							
            MoveToEx  (hdc, 134, 297, NULL);		 LineTo    (hdc, 134, 306);				

			MoveToEx  (hdc, 263, 301, NULL);		 LineTo    (hdc, 272, 301);							
            MoveToEx  (hdc, 267, 297, NULL);		 LineTo    (hdc, 267, 306);

			EndPaint (hwnd, &amp;ps);

			return 0;
...
...
...
...
	}
	return DefWindowProc(hwnd, message, wParam, lParam) ;
}
</code></pre>
<p>also das ganze is so aufgebaut, dass ich ein child fenster hab, in dem ich eine simulation durchführen will und diese soll starten wenn ich auf einen button im hauptfenster klicke... ich bin grad dabei zu versuchen wie ich das ganze über das message system übertragen kann und komm leider nicht weiter:</p>
<p>ich hab folgendes Problem:</p>
<p>das mit dem SendMessage im zweiten Code Auszug funktioniert leider nicht, wenn ich da im hauptfenster draufdrück, und ich weiß nicht woran es liegt? Is der SendMessage Aufruf bzw. seine Parameter in der Klammer falsch? Oder was muss ich machen?<br />
Weiß jemand weiter?</p>
<p>Wär echt nett, wenn ich schnelle Hilfe bekomme, da ich das Programm noch in der Woche so gut wie fertig schreiben will und ich grad wirklich nicht weiterkomme, ich bin auch noch nicht so erfahren...<br />
Vielen Dank für Hilfe! Sirstefen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/96151/problem-mit-sendmessage</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 23:51:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/96151.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Dec 2004 00:00:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit SendMessage on Wed, 29 Dec 2004 00:00:14 GMT]]></title><description><![CDATA[<p>hab folgenden Quellcode:</p>
<p>(is noch alles im Hauptfenster)</p>
<pre><code class="language-cpp">...
		hChild     = CreateWindow (	 szChildName,						// Child Fenster mit seinen Einstellungen
										szChildName,
										WS_CHILD | WS_VISIBLE | WS_DLGFRAME,
										110,
										10,
										400,
										400,
										hwnd,
										NULL,
										((LPCREATESTRUCT) lParam)-&gt;hInstance,
										NULL);
...
</code></pre>
<pre><code class="language-cpp">...	  
	case WM_LBUTTONDOWN:

		if (LOWORD(lParam)  &gt;=    0   &amp;&amp;
			LOWORD(lParam)  &lt;   100   &amp;&amp;
			HIWORD(lParam)  &gt;=    0   &amp;&amp;
			HIWORD(lParam)  &lt;   100)

		{
			SendMessage(hChild, PM_START, 0, 0);
		}

		return 0;
....
</code></pre>
<p>(jetzt kommt das Child Fenster)</p>
<pre><code class="language-cpp">...
LRESULT CALLBACK ChildProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)		// Child Fenster
{
   static RECT  rect;
   static int   cxChar, cyChar;
   HDC          hdc;
   PAINTSTRUCT  ps;

   // Bezeichner verkürzen, umbennen und Deklarieren von neuen

   switch (message)
   {
		case WM_CREATE:

			return 0;

		case WM_SIZE:

			rect.right  = LOWORD(lParam);
			rect.bottom = HIWORD(lParam);

			return 0;

		case PM_START:

			hdc = BeginPaint (hwnd, &amp;ps);

			SelectObject (hdc, GetStockObject (BLACK_PEN));	

			MoveToEx  (hdc, 130, 101, NULL);		 LineTo    (hdc, 139, 101);							
            MoveToEx  (hdc, 134,  97, NULL);		 LineTo    (hdc, 134, 106);				

			MoveToEx  (hdc, 263, 101, NULL);		 LineTo    (hdc, 272, 101);							
            MoveToEx  (hdc, 267,  97, NULL);		 LineTo    (hdc, 267, 106);				

			MoveToEx  (hdc, 130, 201, NULL);		 LineTo    (hdc, 139, 201);							
            MoveToEx  (hdc, 134, 197, NULL);		 LineTo    (hdc, 134, 206);				

			MoveToEx  (hdc, 263, 201, NULL);		 LineTo    (hdc, 272, 201);							
            MoveToEx  (hdc, 267, 197, NULL);		 LineTo    (hdc, 267, 206);				

			MoveToEx  (hdc, 130, 301, NULL);		 LineTo    (hdc, 139, 301);							
            MoveToEx  (hdc, 134, 297, NULL);		 LineTo    (hdc, 134, 306);				

			MoveToEx  (hdc, 263, 301, NULL);		 LineTo    (hdc, 272, 301);							
            MoveToEx  (hdc, 267, 297, NULL);		 LineTo    (hdc, 267, 306);

			EndPaint (hwnd, &amp;ps);

			return 0;
...
...
...
...
	}
	return DefWindowProc(hwnd, message, wParam, lParam) ;
}
</code></pre>
<p>also das ganze is so aufgebaut, dass ich ein child fenster hab, in dem ich eine simulation durchführen will und diese soll starten wenn ich auf einen button im hauptfenster klicke... ich bin grad dabei zu versuchen wie ich das ganze über das message system übertragen kann und komm leider nicht weiter:</p>
<p>ich hab folgendes Problem:</p>
<p>das mit dem SendMessage im zweiten Code Auszug funktioniert leider nicht, wenn ich da im hauptfenster draufdrück, und ich weiß nicht woran es liegt? Is der SendMessage Aufruf bzw. seine Parameter in der Klammer falsch? Oder was muss ich machen?<br />
Weiß jemand weiter?</p>
<p>Wär echt nett, wenn ich schnelle Hilfe bekomme, da ich das Programm noch in der Woche so gut wie fertig schreiben will und ich grad wirklich nicht weiterkomme, ich bin auch noch nicht so erfahren...<br />
Vielen Dank für Hilfe! Sirstefen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/682326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682326</guid><dc:creator><![CDATA[Sirstefen]]></dc:creator><pubDate>Wed, 29 Dec 2004 00:00:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit SendMessage on Wed, 29 Dec 2004 00:07:34 GMT]]></title><description><![CDATA[<p>Zeichnen (BeginPaint/EndPaint) bitte nur als Reaktion auf die Nachricht WM_PAINT machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/682329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682329</guid><dc:creator><![CDATA[WM_PAINT]]></dc:creator><pubDate>Wed, 29 Dec 2004 00:07:34 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit SendMessage on Wed, 29 Dec 2004 01:43:56 GMT]]></title><description><![CDATA[<p>hmm hilft mir leider nicht weiter, weil ich nicht genau weiß wie ich das formulieren müsste...</p>
<p>nach dem &quot;case PM_START: ...&quot; kommt noch &quot;case WM_PAINT: ...&quot; in dem genau dasselbe steht und dann zeichnet er das ganze auch, aber halt von anfang an und er solls ja nur zeichnen wenn man eben auf den button klickt... (also hab ichs halt mal aus &quot;case WM_PAINT:...&quot; entfernt, dann macht er aber gar nix mehr... egal ob ich in dem bereich klicke wodurch er eigentlich die nachricht schicken müsste oder nicht) und wenn ich &quot;SendMessage(hChild, WM_PAINT, 0, 0)&quot; schreibe ändert das auch nix, weil er &quot;case WM_PAINT:...&quot; von anfang an durchführt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/682363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682363</guid><dc:creator><![CDATA[Sirstefen]]></dc:creator><pubDate>Wed, 29 Dec 2004 01:43:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit SendMessage on Wed, 29 Dec 2004 01:48:47 GMT]]></title><description><![CDATA[<p>SendMessage(hChild, WM_PAINT, 0, 0) ist Blödsinn, weil es genau gar nichts bewirkt.</p>
<p>Wenn du willst, dass dein Fenster neu gezeichnet wird, ist InvalidateRect() die Funktion deiner Wahl. <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="🙂"
    /><br />
Den Rest macht Windows; mit UpdateWindow kannst du es beschleunigen (wenn das Neuzeichnen sofort geschehen muss).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/682366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682366</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Wed, 29 Dec 2004 01:48:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit SendMessage on Wed, 29 Dec 2004 01:53:50 GMT]]></title><description><![CDATA[<p>Also tu alles was du zeichnest in den WM_PAINT Handler. Was gezeichnet werden soll bestimmst du durch ein Flag &quot;ButtonPressed&quot;. Und dann machst du bei WM_LBUTTONDOWN:</p>
<pre><code class="language-cpp">case WM_LBUTTONDOWN:
    if(...)
    {
        ButtonPressed = true;
        InvalidateRect(hwnd, NULL, TRUE);
    }
    return 0;
</code></pre>
<p>Und dann bei WM_PAINT:</p>
<pre><code class="language-cpp">case WM_PAINT:
    BeginPaint(...);
    if(ButtonPressed)
    {
        // zeichnen
    }
    EndPaint(...);
    return 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/682369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682369</guid><dc:creator><![CDATA[WM_PAINT]]></dc:creator><pubDate>Wed, 29 Dec 2004 01:53:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit SendMessage on Wed, 29 Dec 2004 12:57:40 GMT]]></title><description><![CDATA[<p>es funktioniert...<br />
Vielen Dank schonmal</p>
<p>Des problem is blos dass ich im hauptfenster einen button habe:</p>
<pre><code class="language-cpp">hwndButton = CreateWindow (		&quot;button&quot;,									// Start Button mit seinen Einstellungen
										&quot;Start&quot;,
										WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
										cxChar * 28, 
										cyChar * 26,
										6 * cxChar, 
										7 * cyChar / 4,
										hwnd, 
										NULL,
										((LPCREATESTRUCT) lParam)-&gt;hInstance, 
										NULL);
</code></pre>
<p>und dass es starten soll wenn man auf diesen button klickt.... jetzt is es aber so dass ich wenn ich auf irgendeinen bereich (den ich festlege) in meinem hauptfenster klicke, startet es, blos wenn ich diesen bereich auf den button lege dann funktioniert es leider nicht weil der button ja über dem bereich liegt...<br />
hast du ne ahnung wie ich die if schleife schreiben muss damit es passiert wenn auf den button geklickt wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/682547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682547</guid><dc:creator><![CDATA[Sirstefen]]></dc:creator><pubDate>Wed, 29 Dec 2004 12:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit SendMessage on Wed, 29 Dec 2004 14:36:28 GMT]]></title><description><![CDATA[<p>hi,<br />
Musst in die Nachrichtenschleife deines Hauptfensters auf WM_COMMAAND reagieren.</p>
<pre><code>case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case ID_DES_BUTTON:
			//Tue was du willst;
			break;
         break;
</code></pre>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/682674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682674</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Wed, 29 Dec 2004 14:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit SendMessage on Wed, 29 Dec 2004 15:28:35 GMT]]></title><description><![CDATA[<p>super es geht</p>
<p>vielen vielen dank für die mühen Sirstefen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/682716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/682716</guid><dc:creator><![CDATA[Sirstefen]]></dc:creator><pubDate>Wed, 29 Dec 2004 15:28:35 GMT</pubDate></item></channel></rss>