<?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[Dialog ohne Resource]]></title><description><![CDATA[<p>Hallo!</p>
<p>Irgendwie komme ich nicht weiter. Ich möchte einen Dialog ohne eine Dialog-Resource erstellen. Hierzu habe ich mir eine Klasse von CDialog abgeleitet. Als protected Member habe ich eine Variable vom Typ</p>
<pre><code class="language-cpp">DLGTEMPLATE m_DlgTemplate
</code></pre>
<p>angelegt.</p>
<p>Ich komme aber überhaupt nicht damit zu Recht. In der App-Klasse versuche ich meine Dialogfeldklasse mit DoModal zu starten. Es erscheint aber kein Dialogfeld. Google spuckt auch keine für mich brauchbaren Treffer dazu aus.</p>
<p>Meine DLGTEMPLATE Struktur initialisiere ich wie folgt im Konstruktor der Klasse:</p>
<pre><code class="language-cpp">this-&gt;m_DlgTemplate.style           = WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE;
this-&gt;m_DlgTemplate.dwExtendedStyle = 0;
this-&gt;m_DlgTemplate.cdit            = 0;
this-&gt;m_DlgTemplate.x               = 100;
this-&gt;m_DlgTemplate.y               = 100;
this-&gt;m_DlgTemplate.cx              = 600;
this-&gt;m_DlgTemplate.cy              = 600;
</code></pre>
<pre><code class="language-cpp">// AppClass::InitInstance relevanter Code

DialogTemplate Tpl();
//this-&gt;m_pMainWnd = &amp;Tpl;
Tpl.InitModalIndirect(); // &lt;- Hier wird einfach nur &quot;intern&quot; CDialog::InitModalIndirect(&amp;this-&gt;m_DlgTemplate); aufgerufen
INT_PTR nResponse = Tpl.DoModal();
// ...
</code></pre>
<p>Mein Dialogfeld erscheint nicht. Kann mir jemand helfen oder kennt jemand ein einfaches Beispiel?</p>
<p>Gruß Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198182/dialog-ohne-resource</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 09:06:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198182.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Nov 2007 11:43:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dialog ohne Resource on Mon, 19 Nov 2007 11:43:31 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Irgendwie komme ich nicht weiter. Ich möchte einen Dialog ohne eine Dialog-Resource erstellen. Hierzu habe ich mir eine Klasse von CDialog abgeleitet. Als protected Member habe ich eine Variable vom Typ</p>
<pre><code class="language-cpp">DLGTEMPLATE m_DlgTemplate
</code></pre>
<p>angelegt.</p>
<p>Ich komme aber überhaupt nicht damit zu Recht. In der App-Klasse versuche ich meine Dialogfeldklasse mit DoModal zu starten. Es erscheint aber kein Dialogfeld. Google spuckt auch keine für mich brauchbaren Treffer dazu aus.</p>
<p>Meine DLGTEMPLATE Struktur initialisiere ich wie folgt im Konstruktor der Klasse:</p>
<pre><code class="language-cpp">this-&gt;m_DlgTemplate.style           = WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE;
this-&gt;m_DlgTemplate.dwExtendedStyle = 0;
this-&gt;m_DlgTemplate.cdit            = 0;
this-&gt;m_DlgTemplate.x               = 100;
this-&gt;m_DlgTemplate.y               = 100;
this-&gt;m_DlgTemplate.cx              = 600;
this-&gt;m_DlgTemplate.cy              = 600;
</code></pre>
<pre><code class="language-cpp">// AppClass::InitInstance relevanter Code

DialogTemplate Tpl();
//this-&gt;m_pMainWnd = &amp;Tpl;
Tpl.InitModalIndirect(); // &lt;- Hier wird einfach nur &quot;intern&quot; CDialog::InitModalIndirect(&amp;this-&gt;m_DlgTemplate); aufgerufen
INT_PTR nResponse = Tpl.DoModal();
// ...
</code></pre>
<p>Mein Dialogfeld erscheint nicht. Kann mir jemand helfen oder kennt jemand ein einfaches Beispiel?</p>
<p>Gruß Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405815</guid><dc:creator><![CDATA[_Jochen_]]></dc:creator><pubDate>Mon, 19 Nov 2007 11:43:31 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Mon, 19 Nov 2007 12:23:05 GMT]]></title><description><![CDATA[<p>1. Was sagt GetLastError?<br />
2. Du könntest InitModalIndirect selberin Deinem Konstruktor aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405838</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 19 Nov 2007 12:23:05 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Mon, 19 Nov 2007 12:40:03 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>1. Was sagt GetLastError?</p>
</blockquote>
<p>Hmm, am Ende von InitInstance ist GetLastError 0. Allerdings wenn ich die CDialog::DoModal mit F11/f10 durchlaufe komme ich irgendwann an eine Stelle wo intern GetLastError 1813 ist.</p>
<pre><code>Fehler 1813:
&quot;Der angegebene Ressourcentyp wurde nicht in der Image-Datei gefunden.&quot;
</code></pre>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>2. Du könntest InitModalIndirect selberin Deinem Konstruktor aufrufen.</p>
</blockquote>
<p>Ändert nichts.</p>
<p>P.S.: Es scheint unsinnig kompliziert zu sein mit DLGTEMPLATE zu arbeiten, da alle Internetbeispiele u.a. Speicher mit GlobalAlloc allozieeren und irgendwelche wilden Zusatzbytes an die Struktur heften. Ich möchte aber keine weiteren Controls innerhalb des Templates erstellen. Das mache ich später anders. Wäre es vielleicht einfacher meine Klasse von CWnd abzuleiten und einfach dort mit Create/CreateWindow zu arbeiten? Nur wie lasse ich den Dialog angezeigt wie bei DoModal? Das Fenster schließt sich immer wieder sofort.</p>
<p>Gruß Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405846</guid><dc:creator><![CDATA[_Jochen_]]></dc:creator><pubDate>Mon, 19 Nov 2007 12:40:03 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Mon, 19 Nov 2007 13:32:06 GMT]]></title><description><![CDATA[<p>Zeig mir mal Deinen Konstrukor Deines Dialoges.<br />
Wird dort evtl. einen Template ID übergeben.</p>
<p>Also ist nach der Konstruktion Deines Dialog Objektes evtl. m_hDialogTemplate!=NULL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405891</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 19 Nov 2007 13:32:06 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Mon, 19 Nov 2007 13:55:57 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Zeig mir mal Deinen Konstrukor Deines Dialoges.<br />
Wird dort evtl. einen Template ID übergeben.</p>
</blockquote>
<p>Es wird keine ID übergeben. Hier der Code</p>
<pre><code class="language-cpp">DialogTemplate::DialogTemplate (LPCTSTR     lpCaption,
                                 CWnd      * pParentWnd,
    : CDialog(),
      m_lpCaption(lpCaption),
      m_pParentWnd(pParentWnd),
{
    this-&gt;m_DlgTemplate.style           = WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE;
    this-&gt;m_DlgTemplate.dwExtendedStyle = 0;
    this-&gt;m_DlgTemplate.cdit            = 0;
    this-&gt;m_DlgTemplate.x               = 100;
    this-&gt;m_DlgTemplate.y               = 100;
    this-&gt;m_DlgTemplate.cx              = 600;
    this-&gt;m_DlgTemplate.cy              = 600;

    CDialog::InitModalIndirect(&amp;this-&gt;m_DlgTemplate, this-&gt;m_pParentWnd);
}
</code></pre>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>Also ist nach der Konstruktion Deines Dialog Objektes evtl. m_hDialogTemplate!=NULL</p>
</blockquote>
<p>Nein, m_hDialogTemplate ist NULL.[cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405910</guid><dc:creator><![CDATA[_Jochen_]]></dc:creator><pubDate>Mon, 19 Nov 2007 13:55:57 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Mon, 19 Nov 2007 14:19:16 GMT]]></title><description><![CDATA[<p>Dann steppe mal in den DoModal Code rein und schau mal nach wo er versucht das Template zu Laden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405928</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 19 Nov 2007 14:19:16 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Mon, 19 Nov 2007 16:09:22 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Dann steppe mal in den DoModal Code rein und schau mal nach wo er versucht das Template zu Laden.</p>
</blockquote>
<p>Also in der &quot;dlgcore.cpp&quot; ab Zeile 312 &quot;// create modeless dialog&quot;...<br />
Hier scheint es schief zu gehen, denn &quot;::CreateDialogIndirect&quot; gibt NULL statt einem gültigen Fensterhandle zurück. Es folgt &quot;GetLastError&quot; mit 1813.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406000</guid><dc:creator><![CDATA[_Jochen_]]></dc:creator><pubDate>Mon, 19 Nov 2007 16:09:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Tue, 20 Nov 2007 08:00:00 GMT]]></title><description><![CDATA[<p>Dann ist Dein Template falsch.<br />
Was folgt Deiner Template Struktur. Hast Du darauf geachtet, das im Minimum 3 0x0000 Wörter folgen müssen? (Menü, Klasse, Titel)</p>
<p><a href="http://msdn2.microsoft.com/en-us/library/ms645394.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms645394.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406336</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 20 Nov 2007 08:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Tue, 20 Nov 2007 10:52:44 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Dann ist Dein Template falsch.<br />
Was folgt Deiner Template Struktur. Hast Du darauf geachtet, das im Minimum 3 0x0000 Wörter folgen müssen? (Menü, Klasse, Titel)</p>
<p><a href="http://msdn2.microsoft.com/en-us/library/ms645394.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms645394.aspx</a></p>
</blockquote>
<p>Daran wird es liegen. Habe mal wieder die Remarks Sektion zu schnell überflogen.<br />
Btw: Habe es aber anders gelöst, da ich meine TemplateDialog Klasse eigentlich ursprünglich lediglich von CWnd ableiten wollte. So habe ich es nun auch getan und es funktioniert einwandfrei. Werde allerdings trotzdem noch einmal die CDialog Variante testen um zu schauen, ob es wirklich &quot;nur&quot; daran gelegen hat.<br />
Falls erwünscht, kann ich mich dann noch einmal melden.</p>
<p>Gruß Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406452</guid><dc:creator><![CDATA[_Jochen_]]></dc:creator><pubDate>Tue, 20 Nov 2007 10:52:44 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Tue, 20 Nov 2007 10:58:37 GMT]]></title><description><![CDATA[<p>Beachte, dass Du dann nicht die Standard Features aus dem PreTranslateMessage Bereich hast.</p>
<p>War es Deine Intention ein nicht modales Fenster zu erzeugen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406457</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 20 Nov 2007 10:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog ohne Resource on Tue, 20 Nov 2007 11:27:56 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Beachte, dass Du dann nicht die Standard Features aus dem PreTranslateMessage Bereich hast.</p>
</blockquote>
<p>Oh. Welche sind denn das?</p>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>War es Deine Intention ein nicht modales Fenster zu erzeugen?</p>
</blockquote>
<p>Eigentlich nicht. Es sollte schon ein modaler Dialog sein. Schließlich implementiert die Klasse auch eine Methode DoModal(). Hier habe ich mir den Code von CPropertySheet (leitet von CWnd ab) und CDialog angeschaut und DoModal ähnlich implementiert.</p>
<p>Gruß Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406478</guid><dc:creator><![CDATA[_Jochen_]]></dc:creator><pubDate>Tue, 20 Nov 2007 11:27:56 GMT</pubDate></item></channel></rss>