<?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[Pointer auf Element eines nicht modalen Dialogs]]></title><description><![CDATA[<p>Hallo zusammen! Ich hätt da mal ne Frage:<br />
Ich hab eine Anwendung, die mir ein Dialogfenster öffnet. Dieses enthält eine Liste. Bisher war es so gehandhabt, dass der Dialog modal angezeigt wurde. Um die Liste füllen zu können, wurde in OnInitDialog ein Pointer auf ((CListBox*)GetDlgItem(IDC_LISTE)) gesetzt, der global definiert ist.<br />
Jetzt wollte ich das ganze auf nicht modal umstellen und habe Create und ShowWindow benutzt. Dabei hab ich aber andauernd Fehlermeldungen bekommen, die darauf hindeuten, dass die Liste nicht richtig instanziert wurde. Ich hab das Setzen des Pointers dann in die OnShow ausgelagert, ging immer noch nicht. Dann hab ichs aus der Hauptanwendung mit einem Pointer auf das Dialogfenster versucht und darüber den Pointer auf die Liste gesetzt. Nichts hat funktioniert. Und dann hatte ich keine Lust mehr und hab den Pointer entfernt und greife nur noch über GetDlgItem auf die Liste zu. Und siehe da, keine Probleme! Woran kann das liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149654/pointer-auf-element-eines-nicht-modalen-dialogs</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 05:00:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149654.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Jun 2006 07:45:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer auf Element eines nicht modalen Dialogs on Thu, 08 Jun 2006 07:47:14 GMT]]></title><description><![CDATA[<p>Hallo zusammen! Ich hätt da mal ne Frage:<br />
Ich hab eine Anwendung, die mir ein Dialogfenster öffnet. Dieses enthält eine Liste. Bisher war es so gehandhabt, dass der Dialog modal angezeigt wurde. Um die Liste füllen zu können, wurde in OnInitDialog ein Pointer auf ((CListBox*)GetDlgItem(IDC_LISTE)) gesetzt, der global definiert ist.<br />
Jetzt wollte ich das ganze auf nicht modal umstellen und habe Create und ShowWindow benutzt. Dabei hab ich aber andauernd Fehlermeldungen bekommen, die darauf hindeuten, dass die Liste nicht richtig instanziert wurde. Ich hab das Setzen des Pointers dann in die OnShow ausgelagert, ging immer noch nicht. Dann hab ichs aus der Hauptanwendung mit einem Pointer auf das Dialogfenster versucht und darüber den Pointer auf die Liste gesetzt. Nichts hat funktioniert. Und dann hatte ich keine Lust mehr und hab den Pointer entfernt und greife nur noch über GetDlgItem auf die Liste zu. Und siehe da, keine Probleme! Woran kann das liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073618</guid><dc:creator><![CDATA[Flotti]]></dc:creator><pubDate>Thu, 08 Jun 2006 07:47:14 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Element eines nicht modalen Dialogs on Sat, 10 Jun 2006 14:56:32 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich kann dir leider auch nicht sagen woran das liegt, aber ich hatte das selbe Problem auch vor ein paar Wochen. Bei mir gings um ein FormView, in dem ich als Member einen Pointer auf ein CListCtrl gespeichert hatte.</p>
<p>Ich hatte dann eine Funktion mit der ich verschiedene Werte in das ListControl eintrage, und beim ersten Aufruf der Funktion den Pointer initialisiere:</p>
<pre><code class="language-cpp">if(m_pListCtrl == NULL)  //wurde im Konstruktor auf NULL gesetzt
    m_pListCtrl = GetDlgItem(...)

m_pListCtrl-&gt;InsertItem(...)
...
</code></pre>
<p>Dort hatte ich dann das Problem, dass der erste Aufruf der Funktion problemlos klappte, alle weiteren jedoch zu ASSERT-Fehlern führten. Hab dann mal als Test das if(...) rausgenommen, so dass das GetDlgItem jedes mal aufgerufen wird, und dann funktionierte alles! (also genau wie bei dir)</p>
<p>Per Debugger habe ich dann herausgefunden, dass in m_pListCtrl jedes mal eine andere Adresse stand!?! <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="😕"
    /><br />
(Es war nicht jedes mal eine andere Adresse, und eigentlich waren es auch immer nur 2 Adressen, zwischen denen gewechselt wurde)</p>
<p>Wie gesagt, es funktioniert jetzt auch, mich würde es aber ebenfalls interessieren woran das liegt...</p>
<p>Gruß Brainiac</p>
<p>PS: Der Formview wurde bei mir ab und zu versteckt und wieder angezeigt (SW_SHOW &lt;-&gt; SW_HIDE), kann das der Grund sein? Es war auch nach dem Wiederanzeigen des Views oft die gleiche Adresse, ich konnte keine Regelmäßigkeit feststellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075167</guid><dc:creator><![CDATA[Brainiac]]></dc:creator><pubDate>Sat, 10 Jun 2006 14:56:32 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Element eines nicht modalen Dialogs on Sat, 10 Jun 2006 14:58:32 GMT]]></title><description><![CDATA[<p>Welche Fehlermeldung kam denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075169</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Sat, 10 Jun 2006 14:58:32 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Element eines nicht modalen Dialogs on Sat, 10 Jun 2006 15:02:28 GMT]]></title><description><![CDATA[<p>Er hat bei InsertItem auf den ASSERT(IsWindow(m_hWnd)) gezeigt. Was ja logisch ist, wenn in m_pListCtrl die falsche Adresse zum Control steht.</p>
<p>Das seltsame ist ja nur warum sich die Adresse des Controls ändert?!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075170</guid><dc:creator><![CDATA[Brainiac]]></dc:creator><pubDate>Sat, 10 Jun 2006 15:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Element eines nicht modalen Dialogs on Sat, 10 Jun 2006 15:38:44 GMT]]></title><description><![CDATA[<p>Vor kurzem hatten wir hier im Forum einen gleich gelagerten Fall, den ich bis jetzt noch nicht richtig verstehe, vor allem, weil es gemäß MSDN auch anders gehen müsste:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-149366-and-postdays-is-0-and-postorder-is-asc-and-start-is-10.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-149366-and-postdays-is-0-and-postorder-is-asc-and-start-is-10.html</a></p>
<p>Hier lag das Debugger-Problem auch bei der winocc.cpp bei</p>
<pre><code class="language-cpp">ASSERT(::IsWindow(m_hWnd));
</code></pre>
<p>Durch Beschaffen eines Handles mit GetSafeHwnd() und Anwenden der Funktion in WinAPI-Stil gelang es, den Punkt zu überwinden.</p>
<pre><code class="language-cpp">CRect myRect;
GetClientRect(&amp;myRect);
HWND hWnd = m_List1.GetSafeHwnd(); //Wir beschaffen uns ein gültiges Handle!
::MoveWindow(hWnd, myRect.left, myRect.top, myRect.Width(), myRect.Height(), TRUE);
</code></pre>
<p>Aber wie gesagt, laut MSDN hätte es auch einfacher gehen müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075190</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 10 Jun 2006 15:38:44 GMT</pubDate></item></channel></rss>