<?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[Zugriff von Child auf Hauptdialog]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe ein oft angesprochenes und diskutiertes Problem, aber trotzdem komme ich mit den Beiträgen dazu nicht zu einer Lösung.</p>
<p>Also ich habe ein Dialogfenster (DF). Das DF enthält eine Variable namens <em>m_oglWindow</em> vom Typ &quot;OpenGLControl&quot; (eine Klasse, abgeleitet von CWnd zur Verwaltung eines OpenGL Fensters). Vom DF aus rufe ich die Funktion</p>
<pre><code class="language-cpp">m_oglWindow.oglCreate( rect,  this )
</code></pre>
<p>auf.</p>
<p>In der eigentliche create-Funktion speichere ich den Zeiger dann wie folgt:</p>
<pre><code class="language-cpp">void COpenGLControl::oglCreate( CRect, CWnd *parent );
{
     ...
     hWnd = parent;
}
</code></pre>
<p>CWnd *hWnd; ist die vorherige Definition natürlich</p>
<p>Nun möchte ich (wie man sicher schon ahnt <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="😉"
    /> ) aus dem m_oglWindow auf den Papa zugreifen, etwa so</p>
<pre><code class="language-cpp">void COpenGLControl::loadFile()
{
     object.import3ds( &quot;C:\modell.3ds&quot; );
     hWnd-&gt;updateVertices( object-&gt;getvertexnum() );
}
</code></pre>
<p>Ich lade also eine *.3ds Datei ein und lese die Anzahl der Eckpunkte aus. Das funktioniert auch problemlos. Aber wenn ich im DF über die Prozedur &quot;updateVertices(int i)&quot; die entsprechende Variable ändern will, heißt es stets &quot;... : error C2039: 'updateVertices' : Ist kein Element von 'CWnd'. Ich habe gelesen, dass ich auf die public-Funktionen des parent zugreifen kann und sie ist auch als public deklariert.<br />
Was mache ich also falsch? <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>MfG<br />
Neron</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151116/zugriff-von-child-auf-hauptdialog</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 01:45:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151116.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Jun 2006 09:09:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 09:09:33 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe ein oft angesprochenes und diskutiertes Problem, aber trotzdem komme ich mit den Beiträgen dazu nicht zu einer Lösung.</p>
<p>Also ich habe ein Dialogfenster (DF). Das DF enthält eine Variable namens <em>m_oglWindow</em> vom Typ &quot;OpenGLControl&quot; (eine Klasse, abgeleitet von CWnd zur Verwaltung eines OpenGL Fensters). Vom DF aus rufe ich die Funktion</p>
<pre><code class="language-cpp">m_oglWindow.oglCreate( rect,  this )
</code></pre>
<p>auf.</p>
<p>In der eigentliche create-Funktion speichere ich den Zeiger dann wie folgt:</p>
<pre><code class="language-cpp">void COpenGLControl::oglCreate( CRect, CWnd *parent );
{
     ...
     hWnd = parent;
}
</code></pre>
<p>CWnd *hWnd; ist die vorherige Definition natürlich</p>
<p>Nun möchte ich (wie man sicher schon ahnt <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="😉"
    /> ) aus dem m_oglWindow auf den Papa zugreifen, etwa so</p>
<pre><code class="language-cpp">void COpenGLControl::loadFile()
{
     object.import3ds( &quot;C:\modell.3ds&quot; );
     hWnd-&gt;updateVertices( object-&gt;getvertexnum() );
}
</code></pre>
<p>Ich lade also eine *.3ds Datei ein und lese die Anzahl der Eckpunkte aus. Das funktioniert auch problemlos. Aber wenn ich im DF über die Prozedur &quot;updateVertices(int i)&quot; die entsprechende Variable ändern will, heißt es stets &quot;... : error C2039: 'updateVertices' : Ist kein Element von 'CWnd'. Ich habe gelesen, dass ich auf die public-Funktionen des parent zugreifen kann und sie ist auch als public deklariert.<br />
Was mache ich also falsch? <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>MfG<br />
Neron</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083628</guid><dc:creator><![CDATA[Neron17]]></dc:creator><pubDate>Fri, 23 Jun 2006 09:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 09:21:24 GMT]]></title><description><![CDATA[<p>Aber dein parent ist doch gar kein OpenGLControl <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1083633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083633</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Fri, 23 Jun 2006 09:21:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 09:26:34 GMT]]></title><description><![CDATA[<p>connan schrieb:</p>
<blockquote>
<p>Aber dein parent ist doch gar kein OpenGLControl <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>
</blockquote>
<p>Richtig, mein parent ist (wenn ich alles richtig gemacht habe) das DF. Ich habe im Dialogfenster noch weitere Elemente, unter anderem eines für die Anzeige der Eckpunktanzahl. Daher möchte ich aus OpenGLControl auf das DF zugreifen können <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/1083647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083647</guid><dc:creator><![CDATA[Neron17]]></dc:creator><pubDate>Fri, 23 Jun 2006 09:26:34 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 09:29:54 GMT]]></title><description><![CDATA[<p>Wie wär es denn mit einem cast auf Deinen parent, also sowas wie</p>
<p>((CMyDialog *)hWnd)-&gt;updateVertices( object-&gt;getvertexnum() );</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083651</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 23 Jun 2006 09:29:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 09:33:55 GMT]]></title><description><![CDATA[<p>jencas schrieb:</p>
<blockquote>
<p>Wie wär es denn mit einem cast auf Deinen parent, also sowas wie</p>
<p>((CMyDialog *)hWnd)-&gt;updateVertices( object-&gt;getvertexnum() );</p>
</blockquote>
<p>Leider tritt noch immer der gleiche Fehler auf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083655</guid><dc:creator><![CDATA[Neron17]]></dc:creator><pubDate>Fri, 23 Jun 2006 09:33:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 10:05:17 GMT]]></title><description><![CDATA[<p>Aber doch bestimmt nicht mit dieser Fehlermeldung &quot;... : error C2039: 'updateVertices' : Ist kein Element von 'CWnd'&quot;, oder????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083675</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 23 Jun 2006 10:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 10:09:09 GMT]]></title><description><![CDATA[<p>Doch, genau die gleiche...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083680</guid><dc:creator><![CDATA[Neron17]]></dc:creator><pubDate>Fri, 23 Jun 2006 10:09:09 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 10:45:12 GMT]]></title><description><![CDATA[<p>Von welchem Type ist hWnd?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083713</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 23 Jun 2006 10:45:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 10:48:08 GMT]]></title><description><![CDATA[<p>Du kannst nur von deinem Dialog aus m_oglWindow.updateVertices(...) aufrufen, dein Dialog, da kannst du casten wie du willst, hat die Methode einfach nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083717</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Fri, 23 Jun 2006 10:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 10:49:03 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>Von welchem Type ist hWnd?</p>
</blockquote>
<p>CWnd* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083718</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Fri, 23 Jun 2006 10:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 10:57:23 GMT]]></title><description><![CDATA[<p>Hm, vielleicht nochmal etwas besser beschreiben:</p>
<p>Ich habe eine Dialogklasse namens CProjectDlg. Die hat als eine Variable ein OpenGLControl (das m_oglWindow).</p>
<p>Ich rufe in CProjectDlg::OnInitDialog die Funktion m_oglWindow.oglCreat( rect, this) - dort übergebe ich wie beschrieben den Zeiger auf CProjectDlg</p>
<p>Dann rufe ich im m_oglWindow die Funktion OpenGLControl::loadFile() - in dieser Funktion möchte ich auf eine Funktion aus CProjectDlg zugreifen, nämlich die CProjectDlg::updateVertices(int i)</p>
<p>Vielleicht ist die Problematik so etwas deutlicher <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>
<p>Vielen Dank schon mal für die Unterstützung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083726</guid><dc:creator><![CDATA[Neron17]]></dc:creator><pubDate>Fri, 23 Jun 2006 10:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 11:06:35 GMT]]></title><description><![CDATA[<p>Dann sollte dass funktionieren:</p>
<pre><code class="language-cpp">( (CProjectDlg*)(hWnd) )-&gt;updateVertices( object-&gt;getvertexnum() );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1083732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083732</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Fri, 23 Jun 2006 11:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 11:30:49 GMT]]></title><description><![CDATA[<p>Ja, klasse. Das funktioniert <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>
<p>Vielen vielen Dank an alle, die sich Mühe gemacht haben.</p>
<p>MfG<br />
Neron</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083743</guid><dc:creator><![CDATA[Neron17]]></dc:creator><pubDate>Fri, 23 Jun 2006 11:30:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 11:41:44 GMT]]></title><description><![CDATA[<p>Tja, sowas hatte ich aber auch schon geschrieben.....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083747</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 23 Jun 2006 11:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 11:52:48 GMT]]></title><description><![CDATA[<p>Ich hab auch von dir 'zitiert'... <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/1083755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083755</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Fri, 23 Jun 2006 11:52:48 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 12:25:28 GMT]]></title><description><![CDATA[<p>Sorry jencas - Ich sehe grad, dass ich bei deinem Code die äußeren Klammern um (CDialog*)hWnd vergessen habe, dadurch wohl der Fehler - heißt das, der Zugriff auf die Operation geht in der Reihenfolge vor den Cast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083770</guid><dc:creator><![CDATA[Neron17]]></dc:creator><pubDate>Fri, 23 Jun 2006 12:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff von Child auf Hauptdialog on Fri, 23 Jun 2006 14:06:59 GMT]]></title><description><![CDATA[<pre><code>(CProjectDlg*)(hWnd)-&gt;updateVertices( object-&gt;getvertexnum() );
</code></pre>
<p>ist dasselbe wie</p>
<pre><code>(CProjectDlg*)(hWnd-&gt;updateVertices( object-&gt;getvertexnum() ));
</code></pre>
<p>deswegen ist es auch bei derselben Fehlermeldung geblieben!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083835</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 23 Jun 2006 14:06:59 GMT</pubDate></item></channel></rss>