<?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[Modelss Dialogs in MDI Applikation]]></title><description><![CDATA[<p>Ich baue mir eine MDI Applikation und will gerne ein Paar Dialogs haben, die aber das ganze Programm nicht blockieren. Ich sollte Modeless dialogs erstellen, aber dann musste ich idiotischerweise nach spezifische Meldungen in &quot;Main loop&quot; aufpassen und korrekt umleiten.<br />
Deshalb dachte ich mir, es sei viel einfacher, wenn ich reine Child-Windows mittels:</p>
<pre><code class="language-cpp">HWND hFindMD = (HWND)SendMessage(hwndClient, WM_MDICREATE, 0, (LPARAM) (LPMDICREATESTRUCT) &amp;mdicreate);
</code></pre>
<p>erstelle.</p>
<p>Das erstellt das Child Window, aber! Jetzt will ich die Kontrolle drin haben! Mittels Resource Editor kann man leicht ein Dialog bauen. Aber wie genau wird das Child Window diese GUI einbetten?</p>
<p>Danke im Voraus!<br />
Zdravko</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194631/modelss-dialogs-in-mdi-applikation</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 04:33:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194631.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Oct 2007 09:39:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Tue, 09 Oct 2007 09:39:37 GMT]]></title><description><![CDATA[<p>Ich baue mir eine MDI Applikation und will gerne ein Paar Dialogs haben, die aber das ganze Programm nicht blockieren. Ich sollte Modeless dialogs erstellen, aber dann musste ich idiotischerweise nach spezifische Meldungen in &quot;Main loop&quot; aufpassen und korrekt umleiten.<br />
Deshalb dachte ich mir, es sei viel einfacher, wenn ich reine Child-Windows mittels:</p>
<pre><code class="language-cpp">HWND hFindMD = (HWND)SendMessage(hwndClient, WM_MDICREATE, 0, (LPARAM) (LPMDICREATESTRUCT) &amp;mdicreate);
</code></pre>
<p>erstelle.</p>
<p>Das erstellt das Child Window, aber! Jetzt will ich die Kontrolle drin haben! Mittels Resource Editor kann man leicht ein Dialog bauen. Aber wie genau wird das Child Window diese GUI einbetten?</p>
<p>Danke im Voraus!<br />
Zdravko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381079</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Tue, 09 Oct 2007 09:39:37 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Tue, 09 Oct 2007 17:36:01 GMT]]></title><description><![CDATA[<p>In dem MDI Child Fenster erzeugst Du einfach in WM_CREATE den Dialog mit CreateDialog. Das Template muss in jedem Fall den Stil WS_CHILD haben.</p>
<p>Thats all!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381453</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 09 Oct 2007 17:36:01 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Tue, 09 Oct 2007 16:21:56 GMT]]></title><description><![CDATA[<p>Ok, ich probiere das!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381464</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Tue, 09 Oct 2007 16:21:56 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Wed, 10 Oct 2007 17:22:53 GMT]]></title><description><![CDATA[<p>Erste Frage - wie erstelle ich das Child Window NON-sizable?</p>
<pre><code class="language-cpp">void CreateMULDIVWindow()
{
	WNDCLASS wndclass;
	wndclass.style         = CS_HREDRAW | CS_VREDRAW;
	wndclass.lpfnWndProc   = MULDIVProc ;
	wndclass.cbClsExtra    = 0;
	wndclass.cbWndExtra    = 0;
	wndclass.hInstance     = H;
	wndclass.hIcon         = LoadIcon(0, IDI_APPLICATION);
	wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW);
	wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wndclass.lpszMenuName  = 0;
	wndclass.lpszClassName = L&quot;MULDIV&quot;;
	RegisterClass(&amp;wndclass);
	MDICREATESTRUCT mdicreate;
	mdicreate.szClass = L&quot;MULDIV&quot;;
	mdicreate.szTitle = L&quot;Find MUL and DIV coefficients&quot;;
	mdicreate.hOwner  = H;
	mdicreate.x       = CW_USEDEFAULT;
	mdicreate.y       = CW_USEDEFAULT;
	mdicreate.cx      = 300;
	mdicreate.cy      = 300;
	mdicreate.style   = WS_BORDER; // hab das probiert, es funzt leider nicht!
	mdicreate.lParam  = 0;
	hMULDIV = (HWND)SendMessage(hClient, WM_MDICREATE, 0, (LPARAM) (LPMDICREATESTRUCT)&amp;mdicreate);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1382285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382285</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Wed, 10 Oct 2007 17:22:53 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Wed, 10 Oct 2007 17:59:39 GMT]]></title><description><![CDATA[<p>Zweite Frage - wie wird das Dialog genau das Childwindow füllen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382306</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Wed, 10 Oct 2007 17:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Wed, 10 Oct 2007 19:13:28 GMT]]></title><description><![CDATA[<p>MDI Child sind IMHO immer sizable.</p>
<p>Du kannst das ganze aber kontrllieren indem Du WM_NCCALCSIZE bzw. WM_GETMINMAXINFO behandelst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382359</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 10 Oct 2007 19:13:28 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Wed, 10 Oct 2007 19:15:40 GMT]]></title><description><![CDATA[<p>Darf ich mich die Aufgabe vereinfachen, indem ich nur WM_SIZE behandle?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382361</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Wed, 10 Oct 2007 19:15:40 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Wed, 10 Oct 2007 21:42:19 GMT]]></title><description><![CDATA[<p>Und noch was - warum funzt die TAB Taste im Dialog nicht? Normalerweise muss die nächste Kontrolle Focus haben... <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/1382444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382444</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Wed, 10 Oct 2007 21:42:19 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Thu, 11 Oct 2007 07:09:37 GMT]]></title><description><![CDATA[<p>Weil Du in der WinAPI ales selbst machen musst? <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>Du musst in die MessageLoop für diesen Fall IsDialogMessage einbauen. Nur dadurch werden die dialogspezifischen Funktionen der Tastatur eingebaut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382551</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 11 Oct 2007 07:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Thu, 11 Oct 2007 07:39:01 GMT]]></title><description><![CDATA[<p>Du meinst, dass ich</p>
<pre><code class="language-cpp">if (hDlgModeless == 0 ¦¦ !IsDialogMessage (hDlgModeless, &amp;msg))
</code></pre>
<p>im Main Loop schreiben muss? Und was mach ich, wenn ich mehrere Dialogs habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382568</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Thu, 11 Oct 2007 07:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Thu, 11 Oct 2007 07:47:16 GMT]]></title><description><![CDATA[<p>Entschuldigung, aber diese IsDialogMessage funzt nur wenn ich genau 1 Dialog vom diesen Typ erzeugt habe. Nehmen wir nun an, dass sei jetzt kein Problem.<br />
Aber was mache ich, wenn ich mehrere andere Dialogs erstelle? Ich verstehe nicht wie man überhaupt Win32 API in der Praxis benutzen kann, wenn es keine einfache Situationen wie diese nicht lösen können! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382580</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Thu, 11 Oct 2007 07:47:16 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Thu, 11 Oct 2007 08:04:22 GMT]]></title><description><![CDATA[<p>Du musst eine eigene Verwaltung aufbauen.<br />
Warum nimmst Du nicht die MFC. Die nimmt Dir alles das ab...</p>
<p>Du hast mehrere MDI Child Windows, aber nur eines ist aktiv. Nur an den Dialog das in dem aktiven MDI Child Dialog liegt musst Du die Nachrichten an IsDialogMessage weiterleiten.</p>
<p>Das geht mit beliebig vielen Fenstern, nur musst Du selbst eine entsprechende Verwaltung dafür aufbauen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382597</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 11 Oct 2007 08:04:22 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Thu, 11 Oct 2007 08:12:44 GMT]]></title><description><![CDATA[<p>Das</p>
<pre><code class="language-cpp">case WM_CREATE:
	case WM_MDIACTIVATE:
		hMDIChild = hwnd;
		return 0;
</code></pre>
<p>funzt nicht. Wenn das Child Window erstellt wird, funzt die TAB Taste nicht mehr...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382602</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Thu, 11 Oct 2007 08:12:44 GMT</pubDate></item><item><title><![CDATA[Reply to Modelss Dialogs in MDI Applikation on Thu, 11 Oct 2007 18:56:13 GMT]]></title><description><![CDATA[<p>Und was soll mit dieser Code sagen?<br />
1. Würde ich sagen, da fehlt ein break; im WM_CREATE!<br />
2. Du benötigst das andle des Dialoges, nicht des MDI Child windows.</p>
<p>Wie ich schon schrieb: Du benötigst eine Verwaltung für die Handles, die Du verwendest. Oder Du besorgst Die das Handle des eingebetteten Dialog mit der Funktion GetWindow... Es gibt viele Wege zum Ziel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383150</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 11 Oct 2007 18:56:13 GMT</pubDate></item></channel></rss>