<?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[Datenaustausch zwischen fenstern]]></title><description><![CDATA[<p>hallo,</p>
<p>ich möchte einem fenster über createwindow einen zeiger auf eine statische datenstruktur eines anderen fensters übergeben, beim neuen fenster kommt dann aber nichts sinnvolles an. hier mein code</p>
<pre><code class="language-cpp">BOOL CALLBACK Dlg (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{ 
    ...
    static int a = 5, *ptr = &amp;a;

    ...
    CreateWindow (... , (LPVOID) ptr);
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static int a, *ptr;

    switch (message)
    {
	case WM_CREATE:

             ptr = (int *) lParam;
             a = *ptr;
</code></pre>
<p>wäre für jeden tip dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147825/datenaustausch-zwischen-fenstern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 03:51:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147825.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 20 May 2006 12:27:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 12:27:25 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich möchte einem fenster über createwindow einen zeiger auf eine statische datenstruktur eines anderen fensters übergeben, beim neuen fenster kommt dann aber nichts sinnvolles an. hier mein code</p>
<pre><code class="language-cpp">BOOL CALLBACK Dlg (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{ 
    ...
    static int a = 5, *ptr = &amp;a;

    ...
    CreateWindow (... , (LPVOID) ptr);
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static int a, *ptr;

    switch (message)
    {
	case WM_CREATE:

             ptr = (int *) lParam;
             a = *ptr;
</code></pre>
<p>wäre für jeden tip dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061559</guid><dc:creator><![CDATA[fensterputzer]]></dc:creator><pubDate>Sat, 20 May 2006 12:27:25 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 12:50:29 GMT]]></title><description><![CDATA[<p>Hoi,</p>
<p>Also der letzte Param. von CreateWindow bzw. CreateWindowEx ist nicht 'frei verfübar', sondern für ein Zeiger auf ein CREATESTRUCT bzw. ein CLIENTCREATESTRUCT (für MDI's) vorgesehen, du kannst da also nicht irgendwelche Daten 'reinpacken' <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>Eine mögliche Lösung:<br />
Du könntest globale Variablen benutzen, auf die ja dann beide (alle) Fenster zurückgreifen können.</p>
<p>Zweite mögliche Lösung:<br />
Du kannst mit SetWindowLong(hWnd, GWL_USERDATA, (LONG)&amp;pvData); deinem Fenster 'ein zusätzliches Datenpacket zuweisen'. Der letzte Param. ist also eine Adressenvar. die dann auf ein beliebigen Speicherbereich zeigen kann (zB. Struct). Mit GetWindowLong(hWnd, GWL_USERDATA); kannst du dir den Zeiger zu jeder Zeit holen.</p>
<p>Hoffe ich konnte helfen <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>
<p>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061578</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 20 May 2006 12:50:29 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 12:51:49 GMT]]></title><description><![CDATA[<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/createwindow.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/createwindow.asp</a></p>
<blockquote>
<p>lpParam<br />
[in] Pointer to a value to be passed to the window through the CREATESTRUCT structure passed in the lParam member of the WM_CREATE message sent to the created window by this function before it returns.</p>
</blockquote>
<p>also</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int a, *ptr;

	switch (message)
	{
		case WM_CREATE:
			ptr = (int*) ((LPCREATESTRUCT)lParam)-&gt;lpCreateParams;
			a	= *ptr;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1061580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061580</guid><dc:creator><![CDATA[WebNubbi]]></dc:creator><pubDate>Sat, 20 May 2006 12:51:49 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 13:14:31 GMT]]></title><description><![CDATA[<p>tausend dank, endlich kommt mal was an. habs jetzt mit setwindlowlong gemacht.</p>
<p>gruß christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061601</guid><dc:creator><![CDATA[fensterputzer]]></dc:creator><pubDate>Sat, 20 May 2006 13:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 15:23:41 GMT]]></title><description><![CDATA[<p>so, hab jetzt doch wieder ein problem. hier die codestelle, an der anscheinend gemeckert wird</p>
<pre><code class="language-cpp">BOOL CALLBACK RectDlg (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
     static int a;
     ...

     data = a;
     hwnd2 = CreateWindow (...);	
     SetWindowLong (hwnd2, GWL_USERDATA, (LONG) &amp;data);
     ShowWindow (hwndPaint, SW_SHOWNORMAL);
}

LRESULT CALLBACK PaintWndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	static int	*p2data, a;

	switch (message)
	{
	case WM_CREATE:

		p2data = (t_exchange *) GetWindowLong (hwnd, GWL_USERDATA);
                a = *p2data                                          //&lt;- Error        ...
</code></pre>
<p>und dann gibts immer nen error.<br />
kann es sein, dass ich irgendwie die reihenfolge von setWindowLong und GetWindowLong durcheinander gebracht habe? Ich meine, dass ich GetWindowLong nicht in WM_CREATE auffrufen kann, weil ich da ja noch kein SetWindowLong gestzt habe? und wenn ja, wie kann ich das problem umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061675</guid><dc:creator><![CDATA[fensterputzer]]></dc:creator><pubDate>Sat, 20 May 2006 15:23:41 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 16:05:34 GMT]]></title><description><![CDATA[<p>hi nochmal^^,</p>
<p>Wie ist denn<br />
data<br />
definiert/deklariert ?</p>
<p>_________________________________________________</p>
<p>Was ist bitte das hier: (t_exchange <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="😉"
    /> in</p>
<pre><code class="language-cpp">p2data = (t_exchange *) GetWindowLong (hwnd, GWL_USERDATA);
</code></pre>
<p>...glaub du baust mit deinen Casts scheiße <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>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061701</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 20 May 2006 16:05:34 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 16:05:41 GMT]]></title><description><![CDATA[<p>Der Vollständigkeit halber wollte ich noch eine weitere Möglichkeit erwähnen, auch wenn ihr das Problem bereits anders löst. Man kann auch über Pipes Daten austauschen. Sowohl zwischen verschiedenen Fenstern als auch Programmen und Rechnern. Ist aber wahrscheinlich für den zweck ungeeignet und viel zu viel Aufwand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061702</guid><dc:creator><![CDATA[PsychoticStyx]]></dc:creator><pubDate>Sat, 20 May 2006 16:05:41 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 16:26:08 GMT]]></title><description><![CDATA[<p>Jo weiß ich, aber wie du schon sagtest, Pipes sind hier zu viel des Guten... <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 der Vollständigkeit halber, ...doch gute Idee <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>
<p>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061711</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 20 May 2006 16:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 16:30:48 GMT]]></title><description><![CDATA[<p>Ja das hast du schon richtig erkannt, warum das nicht gehen kann.</p>
<blockquote>
<p>The WM_CREATE message is sent when an application requests that a window be created by calling the CreateWindowEx or CreateWindow function. (The message is sent before the function returns.)</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1061714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061714</guid><dc:creator><![CDATA[WebNubbi]]></dc:creator><pubDate>Sat, 20 May 2006 16:30:48 GMT</pubDate></item><item><title><![CDATA[Reply to Datenaustausch zwischen fenstern on Sat, 20 May 2006 17:16:20 GMT]]></title><description><![CDATA[<p>so habs jetzt über createwindow und lparam gesendet und dann mit WebNubbis</p>
<pre><code class="language-cpp">ptr = (int*) ((LPCREATESTRUCT)lParam)-&gt;lpCreateParams;
</code></pre>
<p>umgewandelt (hat komischerweise beim ersten versuch gar nicht und beim zweiten, 20 min später, auf anhieb geklappt?! wohl mal wieder nicht aufgepasst)</p>
<p>t_exchange ist aus meinem code. wollte das hier eigentlich mit int übersichtlich halten, hab da aber wohl einen übersehen.</p>
<p>danke nochmal für die schnelle hilfe, ist wirklich n super forum hier.</p>
<p>weiter so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061744</guid><dc:creator><![CDATA[fensterputzer]]></dc:creator><pubDate>Sat, 20 May 2006 17:16:20 GMT</pubDate></item></channel></rss>