<?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[modaler Dialog startet nicht]]></title><description><![CDATA[<p>Guten Abend!</p>
<p>Ich versuche über DialogBox einen modalen Dialog zu starten.</p>
<pre><code class="language-cpp">case ID_BEARBEITEN:
{
DialogBox(hInst, TEXT(&quot;DLG1&quot;), hwnd, dialogdateibearbeitenprozedur);
break;
}
</code></pre>
<p>Die Prozedur:</p>
<pre><code class="language-cpp">BOOL CALLBACK dialogdateibearbeitenprozedur(HWND hdialogdateibearbeiten, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_INITDIALOG:
             return TRUE;

        case WM_QUIT:
             DestroyWindow(hdialogdateibearbeiten);
             return 0;
    }
    return 0 ;   
}
</code></pre>
<p>Der Anfang der *.rc:</p>
<pre><code class="language-cpp">#include &quot;afxres.h&quot;
DLG1 DIALOG DISCARDABLE 10,10,283,252
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE
FONT 8, &quot;MS Sans Serif&quot;
</code></pre>
<p>Das Problem ist, dass der Dialog gar nicht erst erschaffen wird. Meint zumindest mein Test mittels GetDlgItem.</p>
<p>Wenn ich ID_BEARBEITEN als wParam an WM_COMMAND sende, wird auch dieser case-Zweig aufgerufen.</p>
<p>Hat jemand eine Idee, was ich falsch gemacht haben könnte.</p>
<p>Mit freundlichen Grüßen<br />
Moadeh</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201072/modaler-dialog-startet-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 08:29:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201072.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Dec 2007 20:55:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to modaler Dialog startet nicht on Sun, 23 Dec 2007 20:55:19 GMT]]></title><description><![CDATA[<p>Guten Abend!</p>
<p>Ich versuche über DialogBox einen modalen Dialog zu starten.</p>
<pre><code class="language-cpp">case ID_BEARBEITEN:
{
DialogBox(hInst, TEXT(&quot;DLG1&quot;), hwnd, dialogdateibearbeitenprozedur);
break;
}
</code></pre>
<p>Die Prozedur:</p>
<pre><code class="language-cpp">BOOL CALLBACK dialogdateibearbeitenprozedur(HWND hdialogdateibearbeiten, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_INITDIALOG:
             return TRUE;

        case WM_QUIT:
             DestroyWindow(hdialogdateibearbeiten);
             return 0;
    }
    return 0 ;   
}
</code></pre>
<p>Der Anfang der *.rc:</p>
<pre><code class="language-cpp">#include &quot;afxres.h&quot;
DLG1 DIALOG DISCARDABLE 10,10,283,252
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE
FONT 8, &quot;MS Sans Serif&quot;
</code></pre>
<p>Das Problem ist, dass der Dialog gar nicht erst erschaffen wird. Meint zumindest mein Test mittels GetDlgItem.</p>
<p>Wenn ich ID_BEARBEITEN als wParam an WM_COMMAND sende, wird auch dieser case-Zweig aufgerufen.</p>
<p>Hat jemand eine Idee, was ich falsch gemacht haben könnte.</p>
<p>Mit freundlichen Grüßen<br />
Moadeh</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425367</guid><dc:creator><![CDATA[Moadeh]]></dc:creator><pubDate>Sun, 23 Dec 2007 20:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Sun, 23 Dec 2007 23:51:12 GMT]]></title><description><![CDATA[<p>N'Abend <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>
<p>Also folgendes:<br />
1. Im Aufruf von DialogBox ist die Verwendung des Makros <code>TEXT(&quot;DLG1&quot;)</code> falsch, das muss heißen:</p>
<pre><code class="language-cpp">DialogBox(hInst, MAKEINTRESOURCE(DLG1), hwnd, dialogdateibearbeitenprozedur);
</code></pre>
<p>2. Sollte der Return-Typ Deiner 'dialogdateibearbeitenprozedur' INT_PTR CALLBACK sein und<br />
3. Fängt man, zum Beenden des Dialogs nicht WM_QUIT, sondern WM_DESTROY ab. Dann verwendet man nicht DestroyWindow (gilt nur für Fenster), sondern EndDialog <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="😉"
    /> .<br />
4. Du gibst in Deiner 'dialogdateibearbeitenprozedur' immer '0' (also FALSE) zurück. Du musst aber TRUE zurückgeben, wenn Du dem Dialog-Manager signalisieren willst, dass er Deine Nachricht als bearbeitet ansehen soll, andernfalls FALSE.</p>
<p>Hoffe, das bringt Dich weiter, frohe Weihnachten :xmas1: !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425376</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 23 Dec 2007 23:51:12 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Sun, 23 Dec 2007 22:26:34 GMT]]></title><description><![CDATA[<p>Erstmal Danke. Aber leider hilft mir das nicht.<br />
Aber zum 2. eine Frage.<br />
Wieso muss das INT_PTR CALLBACK sein? Ich hab den Petzold, dort steht es mit BOOL drin.</p>
<p>Hättest du, bzw. selbstverständlich auch andere, denn ansonsten noch Ideen wo das Problem sein könnte? Oder wird der Dialog noch von anderen Codeabschnitten beeinflusst, die ich noch posten könnte?</p>
<p>Mit freundlichen Grüßen<br />
Moadeh</p>
<p>PS:Und auch euch ein schönes Fest :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425413</guid><dc:creator><![CDATA[Moadeh]]></dc:creator><pubDate>Sun, 23 Dec 2007 22:26:34 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Sun, 23 Dec 2007 22:42:50 GMT]]></title><description><![CDATA[<p>Seit der Einführung von 64Bit Systemen hat man den Typ angepasst: INT_PTR bezieht sich also eigentlich nur darauf, ist also mit BOOL identisch (int), wenn Du auf einem 32-Bit-System arbeitest (bzw. es dafür kompilierst). Das das nit im Petzold steht, ist klar^^. Man sollte sich das halt einfach nur direkt angewöhnen, war also nit direkt n Fehler <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>
<p>Hm, aber zu Deinem Problem: Teste mal den Return-Wert von DialogBox und prüfe auch mal mit GetLastError. Ist 'hInst' bzw. 'hwnd' gültig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425421</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 23 Dec 2007 22:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Sun, 23 Dec 2007 23:22:12 GMT]]></title><description><![CDATA[<p>Ja, stimmt wohl. Der Petzold ist nicht mehr so jung.^^</p>
<p>DialogBox retuniert mir -1. Laut msdn liegt das Problem also nicht beim Parent.<br />
Vorsichtshalber hab ich den aber nochmal getestet und scheinbar war das Ergebniss in der If-Schleife nicht 1.</p>
<p>Wie man HINSTANCE prüft weiß ich nicht, aber ich habe es mal mit if(INVALID_HANDLE_VALUE!=hInst) versucht. Die if-Schleife ist bei mir dann 1. Also scheint der Fehler auch nicht bei hInst liegen, der überings mit hInst=((LPCREATESTRUCT)lParam)-&gt;hInstance; in WM_CREATE gesetzt ist.</p>
<p>GetLastError() gibt mir allerdings 1814 als Ergebnis.<br />
&quot;ERROR_RESOURCE_NAME_NOT_FOUND&quot;<br />
Damit kann doch ja nur der zweite Parameter von DialogBox() gemeint sein.<br />
Aber DLG1 ist doch in der *.rc drin. Also was könnte dort falsch sein?</p>
<p>Mit freundlichen Grüßen<br />
Moadeh :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425453</guid><dc:creator><![CDATA[Moadeh]]></dc:creator><pubDate>Sun, 23 Dec 2007 23:22:12 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Sun, 23 Dec 2007 23:53:58 GMT]]></title><description><![CDATA[<p>Hm, und Du hast sicher meinen 1. Rat befolgt, also statt:</p>
<pre><code class="language-cpp">TEXT(&quot;DLG1&quot;)
</code></pre>
<p>ein:</p>
<pre><code class="language-cpp">MAKEINTRESOURCE(DLG1)
</code></pre>
<p>eingefügt? Das würde das nämlich erklären <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/1425466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425466</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 23 Dec 2007 23:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Mon, 24 Dec 2007 09:28:09 GMT]]></title><description><![CDATA[<p>Habe dann jetzt in der *.rc</p>
<pre><code class="language-cpp">IDD_DLG1 DIALOG DISCARDABLE 10,10,283,252
</code></pre>
<p>Und der dementsprechende Aufruf:</p>
<pre><code class="language-cpp">DialogBox(hInst, MAKEINTRESOURCE(IDD_DLG1), hwnd, dialogdateibearbeitenprozedur);
</code></pre>
<p>Ich hatte die ganze Zeit noch in MAKEINTRESOURCE die Anführungsstriche<br />
Damit ist der Fehlercode 1814 entfernt. Ich kann aber scheinbar auch DLG1 DIALOG... lassen und beim Aufruf dann TEXT(&quot;DLG1&quot;) benutzen. Damit ist der Fehler auch entfernt.</p>
<p>Jetzt gibt GetLastError() mir allerdings 87 aus.<br />
&quot;ERROR_INVALID_PARAMETER&quot;</p>
<p>Da ich ja hInst und hwnd getestet habe, kann damit ja wieder nur MAKEINTRESOURCE(IDD_DLG1) gemeint sein.<br />
Der Prototyp von dialogdateibearbeitenprozedur ist zumindest gleich. Und der Compiler sagt auch nichts davon, dass die Prozedur unbekannt ist.</p>
<p>Mit freundlichen Grüßen<br />
Moadeh :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425503</guid><dc:creator><![CDATA[Moadeh]]></dc:creator><pubDate>Mon, 24 Dec 2007 09:28:09 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Mon, 24 Dec 2007 12:56:15 GMT]]></title><description><![CDATA[<p>Okay, das eine Problem gelöst.<br />
Der Dialog startet nun.<br />
Nur ist der Fehlercode immer noch der Wert den mir GetLastError zurückgibt. Ich habe mal getestet, ob der Fehler schon vor dem Aufruf von dem Dialog entsteht, aber vor dem Aufruf ist der zurückgegebene Code 0. Also irgendwo scheint da noch ein Fehler zu sein.</p>
<p>Aber noch was anderes. Vom Resourcen Editor hab ich mir ein Control eingebaut, dass sich in der *.rc &quot;msctls_updown32&quot; ruft. Also sozusagen eine Bidlaufleiste, ohne Bereich zwischen den zwei Pfeilen, nur eben UPDOWN genannt.<br />
Ist das ein Control auf das ich so zugreifen kann oder muss ich das selberzeichnen?<br />
Anscheinend lag der Fehler, dass der Dialog nicht starten wollte, bei diesem Control.</p>
<p>Mit freundlichen Grüßen<br />
Moadeh :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425595</guid><dc:creator><![CDATA[Moadeh]]></dc:creator><pubDate>Mon, 24 Dec 2007 12:56:15 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Tue, 25 Dec 2007 02:51:26 GMT]]></title><description><![CDATA[<p>Hm so sagt mit der Name des Controls nix^^. Könnte vllt auch ein Slider sein.</p>
<p>Happy X-Mas! :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425785</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 25 Dec 2007 02:51:26 GMT</pubDate></item><item><title><![CDATA[Reply to modaler Dialog startet nicht on Tue, 25 Dec 2007 17:22:50 GMT]]></title><description><![CDATA[<p>Da ich teilweise ein sehr schlechter Erklärer bin, lass ich mal ein Bild für mich sprechen(ist in 10 Sekunden mit Paint bearbeitet worden, also sieht nicht mehr nach einem normalen Dialog aus^^).</p>
<p><a href="http://img297.imageshack.us/img297/781/unbenanntif6.png" rel="nofollow">http://img297.imageshack.us/img297/781/unbenanntif6.png</a></p>
<p>Gemeint ist eben dieses Control in der Mitte.<br />
Ist das definiert oder OWNERDRAW?</p>
<p>Hättest du ansonsten noch eine Idee zu meinem Fehlercode 87?</p>
<p>Mit weihnachtlichen Grüßen<br />
Moadeh :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426002</guid><dc:creator><![CDATA[Moadeh]]></dc:creator><pubDate>Tue, 25 Dec 2007 17:22:50 GMT</pubDate></item></channel></rss>