<?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[Nen einfaches Fenster erzeugen]]></title><description><![CDATA[<p>Ich habe bisher noch nicht viel mit der Winapi direkt gemacht, ich kann Textausgeben<br />
und mit nem Scrollbalken umgehen, also alles was ich brauche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Aber wie kann ich einfach ein Fenster erstellen, im Grunde als eigene Anwendung,<br />
sprich es soll nichts direkt mit der eigentlichen Anwendung zu tun haben, aber<br />
kein eigenes Programm sein. Geht das überhaupt?</p>
<p>Das Anwendungsfenster eines normalen win32 Programmes mit der WinApi sieht ja so aus:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     static TCHAR szAppName[] = TEXT (&quot;SysMets3&quot;) ;
     HWND         hwnd ;
     MSG          msg ;
     WNDCLASS     wndclass ;

     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;

     if (!RegisterClass (&amp;wndclass))
     {    // UNICODE-Compilierung ist die einzige realistische Fehlermöglichkeit 
          MessageBox (NULL, TEXT (&quot;Programm arbeitet mit Unicode und setzt Windows NT voraus!&quot;), 
                      szAppName, MB_ICONERROR) ;
          return 0 ;
     }

     hwnd = CreateWindow (szAppName, TEXT (&quot;Metriken des Systems, V. 3&quot;),
                          WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          NULL, NULL, hInstance, NULL) ;

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&amp;msg, NULL, 0, 0))
     {
          TranslateMessage (&amp;msg) ;
          DispatchMessage (&amp;msg) ;
     }
     return msg.wParam ;
}
</code></pre>
<p>Und dann halt eine Messageloop. Kann ich das jetzt einfach so übernehmen?<br />
Möchte das ganze in einen Thread packen, welcher von dem Hauptprogramm,<br />
einfach Zeichenketten erhält, welche in diesem Fenster ausgegeben werden sollen.</p>
<p>Und was noch wichtig wäre, könnte ein so erstelltes Fenster auch für eine<br />
Konsolenanwendung sein, oder geht das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/71281/nen-einfaches-fenster-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 17:19:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/71281.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 16 Apr 2004 17:20:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 17:20:57 GMT]]></title><description><![CDATA[<p>Ich habe bisher noch nicht viel mit der Winapi direkt gemacht, ich kann Textausgeben<br />
und mit nem Scrollbalken umgehen, also alles was ich brauche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Aber wie kann ich einfach ein Fenster erstellen, im Grunde als eigene Anwendung,<br />
sprich es soll nichts direkt mit der eigentlichen Anwendung zu tun haben, aber<br />
kein eigenes Programm sein. Geht das überhaupt?</p>
<p>Das Anwendungsfenster eines normalen win32 Programmes mit der WinApi sieht ja so aus:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     static TCHAR szAppName[] = TEXT (&quot;SysMets3&quot;) ;
     HWND         hwnd ;
     MSG          msg ;
     WNDCLASS     wndclass ;

     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;

     if (!RegisterClass (&amp;wndclass))
     {    // UNICODE-Compilierung ist die einzige realistische Fehlermöglichkeit 
          MessageBox (NULL, TEXT (&quot;Programm arbeitet mit Unicode und setzt Windows NT voraus!&quot;), 
                      szAppName, MB_ICONERROR) ;
          return 0 ;
     }

     hwnd = CreateWindow (szAppName, TEXT (&quot;Metriken des Systems, V. 3&quot;),
                          WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          NULL, NULL, hInstance, NULL) ;

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&amp;msg, NULL, 0, 0))
     {
          TranslateMessage (&amp;msg) ;
          DispatchMessage (&amp;msg) ;
     }
     return msg.wParam ;
}
</code></pre>
<p>Und dann halt eine Messageloop. Kann ich das jetzt einfach so übernehmen?<br />
Möchte das ganze in einen Thread packen, welcher von dem Hauptprogramm,<br />
einfach Zeichenketten erhält, welche in diesem Fenster ausgegeben werden sollen.</p>
<p>Und was noch wichtig wäre, könnte ein so erstelltes Fenster auch für eine<br />
Konsolenanwendung sein, oder geht das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502837</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Fri, 16 Apr 2004 17:20:57 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 19:15:11 GMT]]></title><description><![CDATA[<p>Irgendwie verstehe ich jetzt nicht so genau, wo dein Problem liegt bzw. was genau du überhaupt vorhast <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>
<p>Aber normalerweise hast du nicht für jedes Fenster eine extra Main-Loop (heißt nicht umsonst so)<br />
Also einfach diese Fensterklasse registrieren und dann in WM_PAINT den Text ausgeben, den du z.B. beim Erstellen des Fensters mit übergibst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/502891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502891</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Fri, 16 Apr 2004 19:15:11 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 19:14:40 GMT]]></title><description><![CDATA[<p>du kannst CreateWindow problemlos mehrmals aufrufen. brauchst halt nur noch ne fensterklasse mit ner anderen callback-funktion also:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc2(HWND, UINT, WPARAM, LPARAM);
...
wndclass2.lpfnWndProc  = WndProc2;
</code></pre>
<p>das mit dem extra threat ist keine schlechte idee, weil ja das ganze gemehr von wegen GetMessage (&amp;msg, NULL, 0, 0))...immer wieder die callback funktion aufruft und die schleife ja weiter läuft.</p>
<p>dem andern fenster kannst du ja dann auch problemlos nachrichten mittels SendMessage senden.</p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502892</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Fri, 16 Apr 2004 19:14:40 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 19:18:34 GMT]]></title><description><![CDATA[<p>Flenders wie meinst du das? Wenn ich dieses Fenster mit ner eigenen Mainloop<br />
erstelle, dann habe ich doch keine konflikte mit dem anderen oder?<br />
Das entnehme ich im übrigen auch dem Posting von Lawilog. Und würde das ganze denn<br />
auch in ner Konsole funktionieren?<br />
Und benötigt WNDCLASS denn unbedingt den Parameter hInstance oder kann dieser auch<br />
NULL sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502896</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Fri, 16 Apr 2004 19:18:34 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 19:56:55 GMT]]></title><description><![CDATA[<p>also. ich weiß nicht. vielleicht hat der alte flenders recht, und das geht irgendwie in einem, aber du machst sicherlich auch nix verfehrt, wenn du 2 machst - vorrausgestzt natürlich, du bekommst das mit den threads hin !</p>
<p>beide WNDCLASS-strukturen können die gleiche HINSTANCE haben. du könntest sogar die eine struktur mit der anderen initialisieren (memcpy ?) und dann nur den lpfnWndProc-member ändern. aber egal jetzt.</p>
<p>wie du das mit dem konsolen fenster machst, musst du mal gucken, steht glaub ich, sogar in irgend ner faq.</p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502925</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Fri, 16 Apr 2004 19:56:55 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 20:03:26 GMT]]></title><description><![CDATA[<p>Ich habe keinen Zugriff auf irgendwelche Daten des Programmes, also dieser Teil<br />
muss wirklich eigenständig sein, das soll nen kleines Konsolenfenster geben, damit<br />
ich die Werte in meinen Programmen leichter prüfen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/502927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502927</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Fri, 16 Apr 2004 20:03:26 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 20:39:33 GMT]]></title><description><![CDATA[<p>da du hast sorgen!</p>
<p>welchen compiler benutz du ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502944</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Fri, 16 Apr 2004 20:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 20:48:59 GMT]]></title><description><![CDATA[<p>VC++ 7.1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502949</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Fri, 16 Apr 2004 20:48:59 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 21:41:03 GMT]]></title><description><![CDATA[<p>hm... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>für sowas gibt ja auch nen degugger... <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>ich weiß da net obs geht, weil nen selber net hab, aber wenn du ne konsolen-anwendug erstellst, de windows.h includierst und dann das ganze fenster gesocks mit nei haust, dann müsstest du sowohl cout als auch die windwos funktionen nutzen können...wenn das geht, ist das sicher die einfachste und beste lösung</p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502971</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Fri, 16 Apr 2004 21:41:03 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 22:02:54 GMT]]></title><description><![CDATA[<p>Willst du mich etwa davon abhalten etwas zu programmieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <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 habe es jetzt mal versucht und es schlägt nix fehl (mitm Debugger durchgegangen),<br />
allerdings scheint er in der Message-Loop sofort rauszuspringen, weil mit dem nächsten<br />
Befehl scheint das Programm beendet zu sein, obwohl es trotzdem irgendwie hängt<br />
(hatte ein cout &lt;&lt; &quot;test&quot;; dann die Funktion für das Fenster aufgerufen, danach<br />
ein cin.get (); konnte die Anwendung nur durch das X schließen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502979</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Fri, 16 Apr 2004 22:02:54 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 22:23:52 GMT]]></title><description><![CDATA[<p>hm, muss ich mal ausorbieren. schon ok, is ja keine schlechte idee...</p>
<p>grundsätzlich mein ich aber auch, das du die cout's im messange-loop unterbringen solltest...aber da reden wir morgen weiter. ich geh erstaml regenerien... <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="😉"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/502987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502987</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Fri, 16 Apr 2004 22:23:52 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Fri, 16 Apr 2004 22:43:29 GMT]]></title><description><![CDATA[<p>Ok <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Nunja das ganze ist etwas größer, man wird wenn das fertig ist, sowas wie cout haben, sieht dann so aus:</p>
<pre><code class="language-cpp">Window w; // Ist die Klasse die obengenanntest können soll

myOStream cout (w);

cout &lt;&lt; &quot;Hallo WinAPI-Forum =)&quot; &lt;&lt; endl;
</code></pre>
<p>Ich möchte das ganze so implementieren, dass ich jederzeit das echte cout benutzen<br />
könnte.</p>
<p>Wenn es nicht in der Konsole geht wäre ja nicht _so_ schlimm, aber fänd es halt ganz gut <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/502995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/502995</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Fri, 16 Apr 2004 22:43:29 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sat, 17 Apr 2004 07:25:02 GMT]]></title><description><![CDATA[<p>Also du willst quasi eine Konsolen-Anwendung, die Fenster aufmachen kann, oder?<br />
Weil das hast du ja bisher noch gar keine Main-Loop (wie das mit 2 Threads wäre weiß ich eh nicht).<br />
Dann müsstest du eigentlich doch den 2. Thread so, wie sonst eine ganz normale Win-Anwendung aufbauen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
Du musst dich nur im Main-Thread darum kümmern, dass dieser nicht ausläuft, solange dein 2. Thread noch was zu tun hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/503050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503050</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 17 Apr 2004 07:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sat, 17 Apr 2004 09:06:02 GMT]]></title><description><![CDATA[<p>YEEEHAA ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>also, pass auf: ich habs! musste ein bischen tricksen, aber ich hab genau das, was du willst: das is ein konsolen-programm das jederzeit auf cout zugreifen kann, nur das es eben ein fenster erstellt <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>musst halt nur noch sehen, wie du das deinem compiler bebringst (is wie gesagt ne konsolen-ab - das muss man ja glaub ich beim vc++ angeben, ahb ich selber nicht)</p>
<p>so. here it comes:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows&gt;

using namespace std;

HINSTANCE hInst;

LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);

int main(int argc, char* argv[])
{
	cout &lt;&lt; &quot;Programm startet...\nParameter:&quot; &lt;&lt; endl;
	if(argc == 1)
	{
		cout &lt;&lt; &quot;(keine)&quot; &lt;&lt; endl;
	}
	else
	{
		for(int i = 1; i &lt; argc; i++)
		{
			cout &lt;&lt; '[' &lt;&lt; i &lt;&lt; &quot;] = \&quot;&quot; &lt;&lt; argv[i] &lt;&lt; '\&quot;' &lt;&lt; endl;
		}
	}

	hInst = GetModuleHandle(NULL);

	WNDCLASSEX wc = {sizeof(WNDCLASSEX),
					CS_HREDRAW | CS_VREDRAW | CS_OWNDC,
					MainWndProc, 0, 0, hInst,
					LoadIcon(NULL, IDI_APPLICATION),
					LoadCursor(NULL, IDC_ARROW),
					CreateSolidBrush(RGB(8, 8, 64)),
					NULL,
					&quot;myWindowClass&quot;,
					NULL};

	if(RegisterClassEx(&amp;wc)) cout &lt;&lt; &quot;Fensterklasse registriert.&quot; &lt;&lt; endl;
	else
	{
		cout &lt;&lt; &quot;! RegisterClassEx()&quot; &lt;&lt; endl;
		return -1;
	}

	HWND hWnd = CreateWindow(&quot;myWindowClass&quot;,
		&quot;Deine App&quot;,
		WS_TILED | WS_CAPTION | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SIZEBOX | WS_SYSMENU | WS_VISIBLE,
		100, 100,
		300, 200,
		NULL, NULL, hInst, NULL);

	if(hWnd) cout &lt;&lt; &quot;Fenster erstellt.&quot; &lt;&lt; endl;
	else
	{
		cout &lt;&lt; &quot;! CreateWindow()&quot; &lt;&lt; endl;
		return -1;
	}

	ShowWindow(hWnd, SW_SHOW);
	UpdateWindow(hWnd);

	MSG msg;
	while(GetMessage(&amp;msg, NULL, 0, 0) != 0)
 	{
		TranslateMessage(&amp;msg);
		DispatchMessage(&amp;msg);
	}

	cout &lt;&lt; &quot;Over and Out.&quot;;

	return 0;
}

LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch(msg) {

		case WM_CREATE:
		{
			cout &lt;&lt; &quot;WM_CREATE&quot; &lt;&lt; endl;
			return 0;
		}

		case WM_LBUTTONDOWN:
		{
			cout &lt;&lt; &quot;Mausklick&quot; &lt;&lt; endl;
			return 0;
		}

		case WM_SIZE:
		{
			cout &lt;&lt; &quot;WM_SIZE&quot; &lt;&lt; endl;
			return 0;
		}

		case WM_HELP:
		{
			cout &lt;&lt; &quot;HILFE! ;)&quot; &lt;&lt; endl;
			return 0;
		}

		case WM_DESTROY:
		{
			cout &lt;&lt; &quot;WM_DESTROY&quot; &lt;&lt; endl;
			PostQuitMessage(0);
			return 0;
		}

		default:return(DefWindowProc(hWnd, msg, wParam, lParam));
	}
}
</code></pre>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/503084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503084</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Sat, 17 Apr 2004 09:06:02 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sat, 17 Apr 2004 10:02:15 GMT]]></title><description><![CDATA[<p>Ich verstehe das so, dass du die Konsole nur zu Testzwecken brauchst:</p>
<blockquote>
<p>...also dieser Teil muss wirklich eigenständig sein, das soll nen kleines Konsolenfenster geben, damit ich die Werte in meinen Programmen leichter prüfen kann</p>
</blockquote>
<p>Daher könntest du es ja auch mal versuchen in deinem Programm eine Konsole zu öffnen. Ich bin mir aber nicht sicher, ob dann cout funktioniert, denke aber schon. Ich probiers mal schnell aus, interessiert mich jetzt.</p>
<p>Also cout und printf funktionieren nicht. Aber mit WriteConsole(...); kann man dann was in die Konsole schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/503109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503109</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Sat, 17 Apr 2004 10:02:15 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sat, 17 Apr 2004 10:08:19 GMT]]></title><description><![CDATA[<p>warum nicht meine lösung ? <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>
<p>sie ist einfach und effizient! :p</p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/503128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503128</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Sat, 17 Apr 2004 10:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sat, 17 Apr 2004 10:17:52 GMT]]></title><description><![CDATA[<p>Weil man sie nicht einfach in ein bestehendes Projekt einbauen kann, dafür funktioniert aber auch cout...</p>
<p>AllocConsole(); kannst du einfach in WinMain schreiben und du hast ne Console. Evtl. noch schnell eine Funktion MyPrintf() geschrieben und fertig ist. Aber egal, soll er machen wie er will <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/503138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503138</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Sat, 17 Apr 2004 10:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sat, 17 Apr 2004 11:07:29 GMT]]></title><description><![CDATA[<p>Danke Lawilog, werds gleich mal testen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Daniel ich will im Grunde ostream aus der Library nachbauen, so dass man den code<br />
nur copy n' paste'n müsste und eben ein myOstream cout erstellen müsste. Die Ausgabe<br />
selbst ist unabhängig von der myOstream Klasse, da ich das über ne Schnittstelle<br />
implementiere, so könnt ich auch das ganze auf nen Konsolenfenster ausgeben.</p>
<p>Und vor allem will ich irgendwas, für mich, halbwegssinnvolles programmieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Lawilog deine Methode dürfte, aber mit jeder Win-Anwendung gehen, da du ja nur das<br />
GetModuleHandle eingefügt hast, wenn ich das richtig sehe.</p>
<p>Edit:</p>
<p>Wenn ich darauf Text wie folgt ausgebe, dann kann ich diesen nicht markieren, würd<br />
ich aber gerne um ihn in die Zwischenablage kopieren zu können.</p>
<pre><code class="language-cpp">PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint (hWnd, &amp;ps) ;
TextOut (hdc, 15, 10, &quot;WM_SIZE&quot;, lstrlen (&quot;WM_SIZE&quot;));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/503154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503154</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Sat, 17 Apr 2004 11:07:29 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sun, 18 Apr 2004 20:07:59 GMT]]></title><description><![CDATA[<p>Mag mir keiner helfen <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="😞"
    /> <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/504011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504011</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Sun, 18 Apr 2004 20:07:59 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sun, 18 Apr 2004 20:24:18 GMT]]></title><description><![CDATA[<p>Dann darfst du den Text nicht direkt in dein Fenster zeichnen, sondern musst ein entsprechendes Control (z.B. EDIT) nehmen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504029</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sun, 18 Apr 2004 20:24:18 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sun, 18 Apr 2004 21:31:40 GMT]]></title><description><![CDATA[<p>Also einfach ein Edit-Feld welches so groß wie das gesamte Fenster ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504058</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Sun, 18 Apr 2004 21:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Sun, 18 Apr 2004 22:20:03 GMT]]></title><description><![CDATA[<p>Jetzt will ich meinen Senf auch noch schnell dazu abgeben:</p>
<p>Du kannst die Ausgaben z.B. über eine Named Pipe einfangen. Nach dem Erzeugen der Pipe 'biegst' Du mit freopen stdout um und schaltest das Buffering mit setvbuf und _IONBF aus.</p>
<p>Alle Ausgaben an stdout landen dann in Deiner Pipe. Damit sollte sich doch etwas machen lassen. (Setzt voraus, daß ich das Problem richtig erfasst habe)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504080</guid><dc:creator><![CDATA[-King-]]></dc:creator><pubDate>Sun, 18 Apr 2004 22:20:03 GMT</pubDate></item><item><title><![CDATA[Reply to Nen einfaches Fenster erzeugen on Mon, 19 Apr 2004 14:22:26 GMT]]></title><description><![CDATA[<p>-King- schrieb:</p>
<blockquote>
<p>Jetzt will ich meinen Senf auch noch schnell dazu abgeben:</p>
<p>Du kannst die Ausgaben z.B. über eine Named Pipe einfangen. Nach dem Erzeugen der Pipe 'biegst' Du mit freopen stdout um und schaltest das Buffering mit setvbuf und _IONBF aus.</p>
<p>Alle Ausgaben an stdout landen dann in Deiner Pipe. Damit sollte sich doch etwas machen lassen. (Setzt voraus, daß ich das Problem richtig erfasst habe)</p>
</blockquote>
<p>Wäre sicher ne Möglichkeit, aber ich werde trotzdem meine Methode verwenden, da<br />
ich so etwas mehr Übung bekomme in bezug auf OOP <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/504420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504420</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Mon, 19 Apr 2004 14:22:26 GMT</pubDate></item></channel></rss>