<?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[Methode vom Parent dialog aufrufen, aber wie?]]></title><description><![CDATA[<p>Hallo!<br />
Weis einer vielleicht wie ich die Methoden vom Parent dialog aufrufe?<br />
Habs schon mit AfxGetMainWnd()-&gt;methode versucht aber geht nicht, da kommt der fehler dass methode kein member von 'CWnd' ist.</p>
<p>Wie kann ich dieses Prob lösen?</p>
<p>weil das hauptdialog hat eine funktionierende socket verbindung und nun müssen die kleinen dialoge diese bestehende verbindung weiternutzen um daten zu verschicken.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176497/methode-vom-parent-dialog-aufrufen-aber-wie</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 05:10:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176497.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Mar 2007 19:39:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Wed, 21 Mar 2007 19:39:23 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Weis einer vielleicht wie ich die Methoden vom Parent dialog aufrufe?<br />
Habs schon mit AfxGetMainWnd()-&gt;methode versucht aber geht nicht, da kommt der fehler dass methode kein member von 'CWnd' ist.</p>
<p>Wie kann ich dieses Prob lösen?</p>
<p>weil das hauptdialog hat eine funktionierende socket verbindung und nun müssen die kleinen dialoge diese bestehende verbindung weiternutzen um daten zu verschicken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250049</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Wed, 21 Mar 2007 19:39:23 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Wed, 21 Mar 2007 20:06:15 GMT]]></title><description><![CDATA[<p>Naja ... du kannst das schon mit der Funktion machen ... du musst nur den erhaltenen CWnd Zeiger in einen Zeiger auf deine Hauptdialogklasse casten ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250064</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 21 Mar 2007 20:06:15 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Wed, 21 Mar 2007 20:22:02 GMT]]></title><description><![CDATA[<p>Hmm, ich verstehe glaub ich was du meinst.</p>
<p>wenn mein hauptdialog XYZ heist, könnte das so sein?</p>
<pre><code>DIALOG2::DIALOG2(CWnd* pParent /*=NULL*/): CDialog(DIALOG2::IDD, pParent)
{
    XYZ *a=static_cast pParent;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1250075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250075</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Wed, 21 Mar 2007 20:22:02 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Wed, 21 Mar 2007 20:28:37 GMT]]></title><description><![CDATA[<p>naja wenn da pParent existiert ... also der übergeben wird ...</p>
<pre><code class="language-cpp">DIALOG2::DIALOG2(CWnd* pParent): CDialog(DIALOG2::IDD, pParent)
{
    if (pParent != NULL)
    {
        XYZ* pMainDlg = reinterpret_cast&lt;XYZ*&gt;(pParent);
        pMainDlg-&gt;DoSomethingSpecial();
        pMainDlg-&gt;MayBeSomethingElse();
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1250085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250085</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 21 Mar 2007 20:28:37 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 06:23:19 GMT]]></title><description><![CDATA[<p>Nunja, es gibt zwar beim compilieren keine fehler doch sobald ich mit der pMainDlg irgend was aufrufen will stürzt es ab.<br />
und wenn ich mir einen public attribut hole, kann ich diesn nicht bearbeiten,</p>
<pre><code>int a=pMainDlg-&gt;value;
  a=2;   //ohne dem stürt das prog ab.
  if(a==2) MessageBox(&quot;test&quot;);
</code></pre>
<p>Hätte vl. jemand ein tutorial wo sich 2 dialoge miteinander kommunizieren?<br />
Hab leider bis jetzt nichts gefunden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250120</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Thu, 22 Mar 2007 06:23:19 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 08:08:00 GMT]]></title><description><![CDATA[<p>Was steht denn nach dem reinterpret_cast in pMainDlg?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250228</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Thu, 22 Mar 2007 08:08:00 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 08:16:17 GMT]]></title><description><![CDATA[<p>Ersetz' doch mal den reinterpret_cast durch einen dynamic_cast, der ist an dieser Stelle angebrachter (und natürlich mußt du auch sicherstellen/wissen, daß dein Hauptfenster wirklich ein XYZ ist).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250231</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 22 Mar 2007 08:16:17 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 08:50:15 GMT]]></title><description><![CDATA[<p>Erstens, danke für all eure antworten.<br />
Also mein hauptfenster existiert wirklich, doch jeglicher versuch scheitert, auch das mit dem dynamic_cast.</p>
<p>Hab lange herum gesurft um ein tutorial hier zu gesucht doch ich finde keines.</p>
<p>ausschnitt:</p>
<pre><code>MyTabCtrl* pMainDlg = dynamic_cast&lt;MyTabCtrl*&gt;(pParent); 
MessageBox(&quot;hello&quot;); //nach dem hier schmiert es ab.
pMainDlg-&gt;m_nPageCount=3;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1250249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250249</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Thu, 22 Mar 2007 08:50:15 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 08:53:53 GMT]]></title><description><![CDATA[<p>Randfrage: Ist dir überhaupt klar, <strong>wer</strong> dein Hauptfenster ist? (das wird normalerweise in der C...App::InitInstance() festgelegt - und der Name &quot;CMyTab<strong>Ctrl</strong>&quot; deutet nicht darauf hin, daß das ein eigenständiges Fenster ist)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250253</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 22 Mar 2007 08:53:53 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 08:56:08 GMT]]></title><description><![CDATA[<p>Nochmal: was steht nach dem cast in pMainDlg? Und gibst Du Deinem Dialog den pParent Pointer auch mit? Wenn Du das nicht tust, dann sind das nämlich Nullpointer.</p>
<p>siehe MSDN zu CDialog::CDialog:</p>
<pre><code>CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
CDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1250255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250255</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Thu, 22 Mar 2007 08:56:08 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 09:15:51 GMT]]></title><description><![CDATA[<p>ich weis schon wast du genau meinst aber meine CMyTabCtrl managed die vielen dialoge und es reicht mir schon wenn ich in die klasse CMyTabCtrl zurück greifen kann.<br />
Muss es unbedingt mein Hauptfenster sein?</p>
<p>Mein haupt dialog</p>
<pre><code>class CHauptdialogDlg:public CDialog
{
    ...
    MyTabCtrl	m_tbCtrl;
}
</code></pre>
<pre><code>BOOL CHauptdialogDlg::OnInitDialog()
{
    m_tbCtrl.InitDialogs();
    m_tbCtrl.InsertItem(0,&quot;Create&quot;);
    m_tbCtrl.ActivateTabDialogs();
}
</code></pre>
<pre><code>void MyTabCtrl::InitDialogs()
{
	m_Dialog[0]-&gt;Create(m_DialogID[0],this); //hier sage ich dass this mein parent ist
}
</code></pre>
<p>dh. ich kann nicht zurück greien auf die MyTabCtrl.</p>
<p>nach dem cast steht &lt;MyTabCtrl*&gt;(pParent); siehe mein 4. post in dem thema</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250268</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Thu, 22 Mar 2007 09:15:51 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 09:21:11 GMT]]></title><description><![CDATA[<p>Direkt nicht, aber indirekt - das Hauptfenster ist dein CHauptDialog, wenn du einen Zeiger darauf hast, kannst du natürlich auch dessen Member verwenden:</p>
<pre><code class="language-cpp">CHauptDialog* pDlg = dynamic_cast&lt;CHauptDialog*&gt;(AfxGetMainWnd());
MyTabCtrl&amp; main_tab = pDlg-&gt;m_tbCtrl;
main_tab.InitDialogs();
</code></pre>
<p>(Anmerkungen: (1) Natürlich müssen die Zugriffsrecht so gesetzt sein, daß du von der aktuellen Stelle auf das Tab zugreifen darfst; (2) Wenn du dich bereits in der CHauptDialog-Klasse befindest, entfällt das Ganze - da kannst du direkt auf m_tbCtrl zugreifen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250278</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 22 Mar 2007 09:21:11 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 09:37:19 GMT]]></title><description><![CDATA[<p>Verstehe aber nun kann ich so wie du es geschrieben hast auch nicht zugreifen.<br />
Es stürzt ab sobald ich eine methode aufrufe oder eine public variable zugreifen will.</p>
<p>main_tab.a=4; //a ist ein int, das ganze schmiert leider ab.</p>
<p>woran könnte es denn überhaupt liegen dass es immer jedes mal abschmiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250293</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Thu, 22 Mar 2007 09:37:19 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 09:43:52 GMT]]></title><description><![CDATA[<p>&quot;Schmiert ab&quot; ist eine sehr genaue Fehlerbeschreibung <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="😃"
    /> Zeig doch mal etwas mehr zusammenhängenden Code.</p>
<p>(und im Zweifelsfall ist es auch hilfreich, den Rückgabewert von dynamic_cast auszuwerten)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250302</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 22 Mar 2007 09:43:52 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 10:03:53 GMT]]></title><description><![CDATA[<p>nunja da ist kein zusammenhängender code</p>
<p>Hier der genaue code:</p>
<pre><code>DIALOG2::DIALOG2(CWnd* pParent /*=NULL*/)
	: CDialog(DIALOG2::IDD, pParent)
	, m_port()
	, m_recieveddata(_T(&quot;&quot;))
{
	CServerDlg* pMainDlg = dynamic_cast&lt;CServerDlg*&gt;(AfxGetMainWnd());
	//MyTabCtrl&amp; main_tab = pMainDlg-&gt;m_tbCtrl;
	//main_tab.m_nPageCount=0;
	//{{AFX_DATA_INIT(DIALOG
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1250319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250319</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Thu, 22 Mar 2007 10:03:53 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 10:25:07 GMT]]></title><description><![CDATA[<p>Das ist doch mal ein Anfang <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>Von wo aus wird denn dieser DIALOG2 erzeugt? Und welche der Dialog-Klassen stellt das Hauptfenster deiner Anwendung dar?</p>
<p>(und zur Vollständigkeit: Starte mal den Debugger und schau dir an, was für einen Wert der dynamic_cast&lt;&gt; liefert)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250341</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 22 Mar 2007 10:25:07 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Thu, 22 Mar 2007 17:09:07 GMT]]></title><description><![CDATA[<p>Hmm pMainDlg hat vorhinein den Wert 0xcccccccc und nachhinein den Wert 0x0000000<br />
und meine attribute in pMainDlg haben ein rotes rufzeichen<br />
(error: expression cannot be evaluated)</p>
<p>Also stimmt was beim Casten nicht, muss ich den irgend was beim DIALOG2(CWnd* pParent) übergeben?<br />
weil ich verwende ja nachhinein die fkt. AfxGetMainWnd() und nicht pParent!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250668</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Thu, 22 Mar 2007 17:09:07 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Fri, 23 Mar 2007 09:08:54 GMT]]></title><description><![CDATA[<p>Für dynamic_cast muss RTTI eingeschaltet sein. Ist es das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250985</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:08:54 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Fri, 23 Mar 2007 09:26:51 GMT]]></title><description><![CDATA[<p>Akca schrieb:</p>
<blockquote>
<p>Hmm pMainDlg hat vorhinein den Wert 0xcccccccc und nachhinein den Wert 0x0000000</p>
</blockquote>
<p>Das sieht ganz danach aus, als ob das Haupt-Fenster nicht definiert worden ist. Was für eine Anwendung (SDI/MDI/Dialog) hast du denn angelegt? Und an welcher Stelle wird dein &quot;Hauptdialog&quot; angelegt?</p>
<p>Zur Erklärung: AfxGetMainWnd() liefert theApp.m_pMainWnd und normalerweise ist die InitInstance()-Methode der Applikation dafür verantwortlich, dort einen vernünftigen Zeiger einzutragen. Bei einer Dialog-Anwendung sieht das z.B. so aus:</p>
<pre><code class="language-cpp">BOOL CMyApp::InitInstance()
{
  ...
  CMyDialog dlg;
  m_pMainWnd = &amp;dlg;// &lt;- Hauptfenster definiert
  int nResponse = dlg.DoModal();
  if (nResponse == IDOK)
  {
    // ZU ERLEDIGEN: Fügen Sie hier Code ein, um ein Schließen des
    //  Dialogfelds über OK zu steuern
  }
  else if (nResponse == IDCANCEL)
  {
    // ZU ERLEDIGEN: Fügen Sie hier Code ein, um ein Schließen des
    //  Dialogfelds über &quot;Abbrechen&quot; zu steuern
  }

  // Da das Dialogfeld geschlossen wurde, FALSE zurückliefern, so dass wir die
  //  Anwendung verlassen, anstatt das Nachrichtensystem der Anwendung zu starten.
  return FALSE;
}
</code></pre>
<p>(abgesehen von den Klassennamen ist der Code so von meinem Klassenassistenten angelegt worden)</p>
<p>Aber die elegantere und flexiblere Lösung dürfte es sein, als pParent die Adresse des Hauptfensters zu übergeben und über diese auf deinen Hauptdialog zuzugreifen:</p>
<pre><code class="language-cpp">DIALOG2::DIALOG2(CWnd* pParent /*=NULL*/)
    : CDialog(DIALOG2::IDD, pParent)
    , m_port()
    , m_recieveddata(_T(&quot;&quot;))
{
    CServerDlg* pMainDlg = dynamic_cast&lt;CServerDlg*&gt;(pParent);
    MyTabCtrl&amp; main_tab = pMainDlg-&gt;m_tbCtrl;
    main_tab.m_nPageCount=0;
}

//Aufruf per
CServerDlg::irgendwas()
{
  ...
  DIALOG2 dlg(this);
  dlg.DoModal();
  ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1250996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250996</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 23 Mar 2007 09:26:51 GMT</pubDate></item><item><title><![CDATA[Reply to Methode vom Parent dialog aufrufen, aber wie? on Fri, 23 Mar 2007 16:19:16 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Es funktioniert zwar, nehme an dass es immer funktioniert hat, aber nur wenn ich NICHT im konstruktor der Dialog klasse das aufrufe.<br />
dh. Hab die ganze Zeile in einem Button reingeschrieben und siehe da, ich kann alle Methoden aufrufen und auf alle attribute ganz prima reinschreiben und lesen juhi ich bin so fro, echt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251248</guid><dc:creator><![CDATA[Akca]]></dc:creator><pubDate>Fri, 23 Mar 2007 16:19:16 GMT</pubDate></item></channel></rss>