<?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[Fenster erzeugen, Handle übergeben]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>kann mir mal jemand erklären (für Idioten), wie man in MFC auf Buttondruck<br />
1. Ein neues Fenster erzeugt (öffnet),<br />
2. Wie man die dazugehörigen Handles bekommt, übergibt.<br />
3. Wie man das mit anderen Steuerelementen zur Laufzeit macht.<br />
Ein gutes Toturial wäre natürlich auch nicht schlecht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/61560/fenster-erzeugen-handle-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 03 Jun 2026 20:37:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/61560.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Jan 2004 10:47:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fenster erzeugen, Handle übergeben on Thu, 15 Jan 2004 10:47:20 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>kann mir mal jemand erklären (für Idioten), wie man in MFC auf Buttondruck<br />
1. Ein neues Fenster erzeugt (öffnet),<br />
2. Wie man die dazugehörigen Handles bekommt, übergibt.<br />
3. Wie man das mit anderen Steuerelementen zur Laufzeit macht.<br />
Ein gutes Toturial wäre natürlich auch nicht schlecht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/436925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/436925</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 15 Jan 2004 10:47:20 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster erzeugen, Handle übergeben on Thu, 15 Jan 2004 12:07:50 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>geht ziemlich gleich wie mit der WinApi.</p>
<p>Bloß hast du jetzt die ganze Funktionen in Klassen gekapselt.<br />
Die &quot;Hauptklasse&quot; für Fenster ist CWnd, dann gibt es z.B. noch CDialog für einen Dialog CView für eine View Klasse, usw.</p>
<p>Trikor schrieb:</p>
<blockquote>
<p>1. Ein neues Fenster erzeugt (öffnet),</p>
</blockquote>
<p>Wie gesagt, analog zu der Winapi mit CWnd::Create<br />
Ein Dialog mit CDialog::DoModal (wenn du ihn modal willst) oder auch mit Create (wenn du ihn nicht modal willst).</p>
<p>Trikor schrieb:</p>
<blockquote>
<p>2. Wie man die dazugehörigen Handles bekommt, übergibt.</p>
</blockquote>
<p>CWnd::GetSafeHwnd() bzw. einfach CWnd::operator HWND<br />
oder CWnd::m_hWnd;<br />
Wie meinst du das mit übergeben?</p>
<p>Trikor schrieb:</p>
<blockquote>
<p>3. Wie man das mit anderen Steuerelementen zur Laufzeit macht.</p>
</blockquote>
<p>Analog zu CWnd::Create<br />
also z.B. mit CEdit::Create für ein Eingabefeld</p>
<p>Trikor schrieb:</p>
<blockquote>
<p>Ein gutes Toturial wäre natürlich auch nicht schlecht.</p>
</blockquote>
<p>Learning by doing halte ich immer noch am effektivsten (vorrausgesetzt du hast grundlegende C++ Kenntnisse).</p>
<p>MFC ist total logisch aufgebaut <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>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/436987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/436987</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Thu, 15 Jan 2004 12:07:50 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster erzeugen, Handle übergeben on Thu, 15 Jan 2004 12:40:33 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie meinst du das mit übergeben?</p>
</blockquote>
<p>Wenn ich jetzt ein Childfenster erzeugen möchte, muß ich den Handle vom Hauptfenster übergeben.<br />
z. B. bei</p>
<pre><code class="language-cpp">HWND hWndChild = CreateWindowEx(WS_EX_NOPARENTNOTIFY,
				TEXT (&quot;Test&quot;),
				NULL,
				WS_CHILD|WS_VISIBLE,
				200,100,100,100,
				NULL, //hwnd,
				NULL,
				hinst,//hInstance,
				NULL
				);
</code></pre>
<p>Wo jetzt NULL, //hwnd steht, muß ja das Handle vom Hauptfenster übergeben werden. Aber wie komm ich da ran?<br />
Und wie bekomme ich den Handle für ein Steuerelement, dass ich über das Dialogfeld eingefügt habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/437013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/437013</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 15 Jan 2004 12:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster erzeugen, Handle übergeben on Thu, 15 Jan 2004 17:33:11 GMT]]></title><description><![CDATA[<p>Hi,<br />
nichts leichter als das</p>
<blockquote>
<p>//hwnd steht, muß ja das Handle vom Hauptfenster übergeben werden. Aber wie komm ich da ran?</p>
</blockquote>
<p>Normalerweise werden Fenster ja von anderen Fenstern (CWnd) Klassen aufgerufen.<br />
Dann kannst du einfach auf die m_hWnd Variable von CWnd zugreifen (bzw. einfach this verwenden oder GetSafeHwnd).<br />
Wenn das Fenster von einer anderen Klasse aus erstellt wird, musst du etwas kreativ sein. Z.B. bekommst du so von überall aus das Handle auf das Hauptfenster: AfxGetApp()-&gt;m_pMainWnd</p>
<blockquote>
<p>Und wie bekomme ich den Handle für ein Steuerelement, dass ich über das Dialogfeld eingefügt habe?</p>
</blockquote>
<p>Wie über das Dialogfeld? Wenn du auf ein Steuerelement zugreifen willst, dass du mit dem Ressourceneditor hinzugefügt hast, kannst du das entweder über (sofern vorhanden) die Membervariable tun, oder du verwendest GetDlgItem.<br />
Wenn du ein Steuerelement dynamisch erstellst, kannst du z.B. die CWnd::FindWindow Methode verwenden, oder du speicherst einfach den Zeiger auf das Steuerelement (z.B. CEdit) (was man normalerweise ja auch macht).</p>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/437366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/437366</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Thu, 15 Jan 2004 17:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster erzeugen, Handle übergeben on Fri, 16 Jan 2004 09:38:24 GMT]]></title><description><![CDATA[<p>Hi Rapha,</p>
<p>erstmal danke für deine Hilfe. Mittlerweile habe ich es auch geschaft, meine Videovorschau im Hauptfenster laufen zu lassen. Leider im ganzen Hauptfenster. <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="😞"
    /><br />
Es soll aber nur rechts oben in der Ecke laufen. Wenn es im Hauptfenster läuft wird hier das Handle übergeben.</p>
<pre><code class="language-cpp">if ( SUCCEEDED( hr ) )
			{
				hr = pPreview-&gt;SetViewSetting((DWORD) lCookie,
											 sizeof(m_hWnd),
											(BYTE*)&amp;m_hWnd);
			}
</code></pre>
<p>Doch was muß ich angeben, wenn es rechts oben in der Ecke laufen soll? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Ich dachte mir, das ich es in einer Bildkomponente<br />
GetDlgItem(IDC_INKPICTURE1) laufen lasse. Habe dann die Membervariable angelegt (Kategorie Control, Typ CInkPicture, Name m_hWndPicture).<br />
Dann die Übergabe mit</p>
<pre><code class="language-cpp">if ( SUCCEEDED( hr ) )
			{
				hr = pPreview-&gt;SetViewSetting((DWORD) lCookie,
											 sizeof(m_hWndPicture),
											(BYTE*)&amp;m_hWndPicture);
			}
</code></pre>
<p>Das klappt allerdings so nicht.<br />
Was mach ich falsch??? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/437768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/437768</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Fri, 16 Jan 2004 09:38:24 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster erzeugen, Handle übergeben on Mon, 19 Jan 2004 09:13:30 GMT]]></title><description><![CDATA[<p>**** mach aktuell ****<br />
Kann mir keiner sagen, wo der Fehler steckt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/439620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/439620</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Mon, 19 Jan 2004 09:13:30 GMT</pubDate></item></channel></rss>