<?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[Nicht modaler Dialog]]></title><description><![CDATA[<p>Hallo Leute, ich habe ein Problem beim erzeugen eines nicht modalen Dialoges.<br />
Anstatt das der Dialog angezeigt wird, wird nur das aufrufende Programm in den Hintergrund geschoben, es erscheint aber kein Dialog. Das Bsp. habe ich in einem Buch für MS Visual 5.0 gefunden benutze aber 6.0, ich dachte das sollte trotzdem funktionieren.</p>
<p>Um den Dialog zu erzeugen bin ich wie folgt vorgegangen:<br />
Ich habe ein Neues Projekt (MyProjekt) angelegt und dem Projekt einen Dialog hinzugefügt (MyDialog) ein View war schon vorhanden (MyView).</p>
<p>Im Dialog habe ich eine Membervariable eingefügt, einen neuen Konstruktor und eine neue Create Funktion:</p>
<pre><code class="language-cpp">private:
    CView* m_pView;
public:
    MyDialog(CView *pView) //neuer Konstruktor
    BOOL Create();
</code></pre>
<p>In der cpp-Datei habe ich dann den neuen Konstruktor wie folgt realisiert:</p>
<pre><code class="language-cpp">MyDialog::MyDialog(CView *pView)
{
    m_pView ? pView;
}
</code></pre>
<p>Die Create Funktion lautet:</p>
<pre><code class="language-cpp">BOOL MyDialog::Create()
{
    return CDialog::Create(MyDialog::IDD);
}
</code></pre>
<p>(Ich habe jetzt mal das ganze mit den Messages für die OnOK und OnCancel weggelassen, das sollte nicht das Problem sein)</p>
<p>In der View habe ich folgende Code eingefügt:<br />
MyView.h:</p>
<pre><code class="language-cpp">private:
    MyDialog m_pDlg;
</code></pre>
<p>MyView.cpp:</p>
<pre><code class="language-cpp">MyView::MyView()
{
    m_pDlg = new MyDialog(this);
}

MyView::~MyView()
{
    delete m_pDlg;
}

void MyView::OnLButtonDown(UINT nFlags, CPoint point)
{
    if (m_pDlg-&gt;GetSafeHwnd() == 0)
        m_pDlg-&gt;Create();
}

void MyView::OnRButtonDown(UINT nFlags, CPoint point)
{
    m_pDlg-&gt;DestroyWindow();
}
</code></pre>
<p>Wie gesagt ich habe das Problem vereinfacht weil ich denke das Problem muss irgendwo in diesen Zeilen code liegen. Es wird kompiliert und läuft ohne Fehlermeldung, aber der Dialog erscheint nicht, nur das Fenster &quot;wander nach hinten&quot;.<br />
Ich bin für jeden Tipp dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153590/nicht-modaler-dialog</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 07:24:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153590.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Jul 2006 17:57:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nicht modaler Dialog on Tue, 18 Jul 2006 17:57:25 GMT]]></title><description><![CDATA[<p>Hallo Leute, ich habe ein Problem beim erzeugen eines nicht modalen Dialoges.<br />
Anstatt das der Dialog angezeigt wird, wird nur das aufrufende Programm in den Hintergrund geschoben, es erscheint aber kein Dialog. Das Bsp. habe ich in einem Buch für MS Visual 5.0 gefunden benutze aber 6.0, ich dachte das sollte trotzdem funktionieren.</p>
<p>Um den Dialog zu erzeugen bin ich wie folgt vorgegangen:<br />
Ich habe ein Neues Projekt (MyProjekt) angelegt und dem Projekt einen Dialog hinzugefügt (MyDialog) ein View war schon vorhanden (MyView).</p>
<p>Im Dialog habe ich eine Membervariable eingefügt, einen neuen Konstruktor und eine neue Create Funktion:</p>
<pre><code class="language-cpp">private:
    CView* m_pView;
public:
    MyDialog(CView *pView) //neuer Konstruktor
    BOOL Create();
</code></pre>
<p>In der cpp-Datei habe ich dann den neuen Konstruktor wie folgt realisiert:</p>
<pre><code class="language-cpp">MyDialog::MyDialog(CView *pView)
{
    m_pView ? pView;
}
</code></pre>
<p>Die Create Funktion lautet:</p>
<pre><code class="language-cpp">BOOL MyDialog::Create()
{
    return CDialog::Create(MyDialog::IDD);
}
</code></pre>
<p>(Ich habe jetzt mal das ganze mit den Messages für die OnOK und OnCancel weggelassen, das sollte nicht das Problem sein)</p>
<p>In der View habe ich folgende Code eingefügt:<br />
MyView.h:</p>
<pre><code class="language-cpp">private:
    MyDialog m_pDlg;
</code></pre>
<p>MyView.cpp:</p>
<pre><code class="language-cpp">MyView::MyView()
{
    m_pDlg = new MyDialog(this);
}

MyView::~MyView()
{
    delete m_pDlg;
}

void MyView::OnLButtonDown(UINT nFlags, CPoint point)
{
    if (m_pDlg-&gt;GetSafeHwnd() == 0)
        m_pDlg-&gt;Create();
}

void MyView::OnRButtonDown(UINT nFlags, CPoint point)
{
    m_pDlg-&gt;DestroyWindow();
}
</code></pre>
<p>Wie gesagt ich habe das Problem vereinfacht weil ich denke das Problem muss irgendwo in diesen Zeilen code liegen. Es wird kompiliert und läuft ohne Fehlermeldung, aber der Dialog erscheint nicht, nur das Fenster &quot;wander nach hinten&quot;.<br />
Ich bin für jeden Tipp dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099965</guid><dc:creator><![CDATA[Von040Nach0711]]></dc:creator><pubDate>Tue, 18 Jul 2006 17:57:25 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht modaler Dialog on Tue, 18 Jul 2006 18:46:22 GMT]]></title><description><![CDATA[<p>ShowWindow(SW_SHOW);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099991</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 18 Jul 2006 18:46:22 GMT</pubDate></item></channel></rss>