<?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[CreateWindowEx funktioniert einfach nicht!]]></title><description><![CDATA[<p>Hi!</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">HWND CreateMainWindow(HINSTANCE hInstance)
{
	WNDCLASSEX wndClass;
	wndClass.cbSize=200,300;
	wndClass.style= WS_BORDER;
	wndClass.lpfnWndProc= MessageHandler;
	wndClass.cbWndExtra=0;
	wndClass.cbClsExtra=0;
	wndClass.hInstance=hInstance;
	wndClass.hIcon= LoadIcon(NULL,&quot;IDI_WETTBEWERB&quot;);
	wndClass.hIconSm= LoadIcon(NULL, &quot;IDI_SMALL&quot;);
	wndClass.hCursor= LoadCursor(NULL, &quot;IDC_ARROW&quot;);
	wndClass.hbrBackground= (HBRUSH) GetStockObject(WHITE_BRUSH);	wndClass.lpszClassName=&quot;WindowClass&quot;;

	//Fensterklasse registrieren:
	RegisterClassEx(&amp;wndClass);

	//Fenster auf dem Bildschirm ausgeben:
	return CreateWindowEx(NULL,&quot;WindowClass&quot;,&quot;Naerrisches Zeugs&quot;,WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0,200,300,NULL,NULL,hInstance,NULL);
}
</code></pre>
<p>Diese Funktion will einfach nicht funktionieren! Es wird immer 0 zurückgegeben und kein Fenster dargestellt. Mach ich irgendeinen Fehler in der Fensterklasse?</p>
<p>Vielen Dank im Voraus,<br />
veryxRV</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162523/createwindowex-funktioniert-einfach-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 03:55:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162523.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Oct 2006 13:08:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 13:18:06 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">HWND CreateMainWindow(HINSTANCE hInstance)
{
	WNDCLASSEX wndClass;
	wndClass.cbSize=200,300;
	wndClass.style= WS_BORDER;
	wndClass.lpfnWndProc= MessageHandler;
	wndClass.cbWndExtra=0;
	wndClass.cbClsExtra=0;
	wndClass.hInstance=hInstance;
	wndClass.hIcon= LoadIcon(NULL,&quot;IDI_WETTBEWERB&quot;);
	wndClass.hIconSm= LoadIcon(NULL, &quot;IDI_SMALL&quot;);
	wndClass.hCursor= LoadCursor(NULL, &quot;IDC_ARROW&quot;);
	wndClass.hbrBackground= (HBRUSH) GetStockObject(WHITE_BRUSH);	wndClass.lpszClassName=&quot;WindowClass&quot;;

	//Fensterklasse registrieren:
	RegisterClassEx(&amp;wndClass);

	//Fenster auf dem Bildschirm ausgeben:
	return CreateWindowEx(NULL,&quot;WindowClass&quot;,&quot;Naerrisches Zeugs&quot;,WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0,200,300,NULL,NULL,hInstance,NULL);
}
</code></pre>
<p>Diese Funktion will einfach nicht funktionieren! Es wird immer 0 zurückgegeben und kein Fenster dargestellt. Mach ich irgendeinen Fehler in der Fensterklasse?</p>
<p>Vielen Dank im Voraus,<br />
veryxRV</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157663</guid><dc:creator><![CDATA[veryxRV]]></dc:creator><pubDate>Thu, 19 Oct 2006 13:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 13:33:37 GMT]]></title><description><![CDATA[<p>wndclass.cbSize ist falsch. Hier geht es nicht um eine Größe in Pixeln, sondern um den benötigten Speicherplatz der Sturktur WNDCLASSEX. Schreib da mal rein:</p>
<pre><code class="language-cpp">wndclass.cbSize = sizeof(WNDCLASSEX);
</code></pre>
<p>Außerdem hast Du lpszMenuName nicht eingetragen (Wenn kein Menü gebraucht wird: NULL oder lpszAppName.</p>
<p>Dann solltest Du bei hIcon, hIconSm und hCursor die IDs nicht in Anführungszeichen setzen. Sowas interpretiert der Kompiler als Strings. Tatsächlich sind es aber Integer-Werte. Die IDs sind in der windows.h bzw. resource.h per #define festgelegt und werden durch die zugeordneten Integern ersetzt.</p>
<p>Hier zur genaueren Selbstüberprüfung ein Tutorial:</p>
<p><a href="http://pronix.linuxdelta.de/C/win32/win32_1.shtml#4" rel="nofollow">http://pronix.linuxdelta.de/C/win32/win32_1.shtml#4</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157675</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Thu, 19 Oct 2006 13:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 14:02:15 GMT]]></title><description><![CDATA[<p>[versehentliches Doppelposting wegen Serverabsturz.]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157676</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Thu, 19 Oct 2006 14:02:15 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 14:10:15 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort <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="🙂"
    /><br />
Hab die genannten Dinge jetzt gefixt:</p>
<pre><code class="language-cpp">HWND CreateMainWindow(HINSTANCE hInstance)
{
	WNDCLASSEX wndClass;
	wndClass.cbSize= sizeof(WNDCLASSEX);
	wndClass.style=WS_BORDER;
	wndClass.lpfnWndProc= MessageHandler;
	wndClass.cbWndExtra=0;
	wndClass.cbClsExtra=0;
	wndClass.hInstance=hInstance;
	wndClass.hIcon= LoadIcon(NULL,IDI_WINLOGO);
	wndClass.hIconSm= LoadIcon(NULL, IDI_WINLOGO);
	wndClass.hCursor= LoadCursor(NULL, IDC_ARROW);
	wndClass.hbrBackground= (HBRUSH) GetStockObject(WHITE_BRUSH);
	wndClass.lpszMenuName=NULL;
	wndClass.lpszClassName=&quot;WindowClass&quot;;

	//Fensterklasse registrieren:
	RegisterClassEx(&amp;wndClass);

	//Fenster auf dem Bildschirm ausgeben:
	return CreateWindowEx(&quot;WindowClass&quot;,&quot;Programmname&quot;,WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0,200,300,NULL,NULL,hInstance,NULL);
}
</code></pre>
<p>Klappt nur leider immer noch nicht <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/1157680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157680</guid><dc:creator><![CDATA[veryxRV]]></dc:creator><pubDate>Thu, 19 Oct 2006 14:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 14:08:21 GMT]]></title><description><![CDATA[<p>Elektronix schrieb:</p>
<blockquote>
<p>Außerdem hast Du lpszMenuName nicht eingetragen (Wenn kein Menü gebraucht wird: NULL oder lpszAppName.</p>
</blockquote>
<p>NULL oder der Name des Resourcen-Menüs, wenn der lpszAppName ist, ok, sonst NULL. ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Falls kein Menü erstellt würde entspricht NULL nicht lpszAppName. Weiß nicht, ob das daraus hervorging <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>Elektronix schrieb:</p>
<blockquote>
<p>Die IDs sind in der windows.h bzw. resource.h per #define festgelegt und werden durch die zugeordneten Integern ersetzt.</p>
</blockquote>
<p>Sie sind nur ein deinem Resourcen-Header definiert.</p>
<p>Elektronix schrieb:</p>
<blockquote>
<p>[versehentliches Doppelposting wegen Serverabsturz.]</p>
</blockquote>
<p>Ohhja, das kenn ich <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="😡"
    /> , ...ist sowas von nervig <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/1157681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157681</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 19 Oct 2006 14:08:21 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 14:33:41 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Elektronix schrieb:</p>
<blockquote>
<p>Außerdem hast Du lpszMenuName nicht eingetragen (Wenn kein Menü gebraucht wird: NULL oder lpszAppName.</p>
</blockquote>
<p>NULL oder der Name des Resourcen-Menüs, wenn der lpszAppName ist, ok, sonst NULL. ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Falls kein Menü erstellt würde entspricht NULL nicht lpszAppName. Weiß nicht, ob das daraus hervorging <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>Elektronix schrieb:</p>
<blockquote>
<p>Die IDs sind in der windows.h bzw. resource.h per #define festgelegt und werden durch die zugeordneten Integern ersetzt.</p>
</blockquote>
<p>Sie sind nur ein deinem Resourcen-Header definiert.</p>
</blockquote>
<p>Nein. IDC_ARROW oder IDI_APPLICATION sind nicht in der Resourcendatei definiert. Die kann man auch verwenden, wenn man sonst keine Resourcen hat, also müssen sie in der windows.h stehen, oder in einer von windows.h includierten Headerdatei.<br />
Ach ja, die richtige Zeile heist dann:</p>
<pre><code class="language-cpp">wndclass.hCursor       =  LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon         =  LoadIcon(NULL,IDI_APPLICATION);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1157693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157693</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Thu, 19 Oct 2006 14:33:41 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 14:34:46 GMT]]></title><description><![CDATA[<p>Im Grunde hab ichs ja so...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157695</guid><dc:creator><![CDATA[veryxRV]]></dc:creator><pubDate>Thu, 19 Oct 2006 14:34:46 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 14:57:40 GMT]]></title><description><![CDATA[<p>Was bezweckst Du damit:</p>
<pre><code class="language-cpp">HWND CreateMainWindow(HINSTANCE hInstance)
{...
</code></pre>
<p>?</p>
<p>Und damit:</p>
<pre><code class="language-cpp">return CreateWindowEx(&quot;WindowClass&quot;,&quot;Programmname&quot;,WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0,200,300,NULL,NULL,hInstance,NULL);
}
</code></pre>
<p>?</p>
<p>Versuch es doch mal so:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

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

LPCSTR lpszAppName = &quot;AppName&quot;;
LPCSTR lpszTitle   = &quot;Meine erste Applikation&quot;;

int APIENTRY WinMain(HINSTANCE hInstance,
           HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)//Statt APIENTRY geht auch WINAPI
{

   HWND       hWnd;
   MSG        msg;
   WNDCLASSEX   wc;

   wc.cbSize        =  sizeof(WNDCLASSEX);
   wc.style         =  CS_HREDRAW | CS_VREDRAW;
   wc.lpfnWndProc   =  WndProc;
   wc.cbClsExtra    =  0;
   wc.cbWndExtra    =  0;
   wc.hInstance     =  hInstance;
   wc.hCursor       =  LoadCursor(NULL,IDC_ARROW);
   wc.hIcon         =  LoadIcon(NULL, IDI_APPLICATION);
   wc.hbrBackground =  (HBRUSH)GetStockObject(WHITE_BRUSH);
   wc.lpszClassName =  lpszAppName;
   wc.lpszMenuName  =  lpszAppName;
   wc.hIconSm       =  LoadIcon(NULL, IDI_APPLICATION);

   if( RegisterClassEx(&amp;wc) == 0)
      return 0;

   hWnd = CreateWindowEx(NULL,
                         lpszAppName,
                         lpszTitle,
                         WS_OVERLAPPEDWINDOW,
                         0,
                         0,
                         CW_USEDEFAULT,
                         CW_USEDEFAULT,
                         NULL,
                         NULL,
                         hInstance,
                         NULL);

   if( hWnd == NULL)
      return 0;
</code></pre>
<p><a href="http://pronix.linuxdelta.de/C/win32/win32_1.shtml#4" rel="nofollow">http://pronix.linuxdelta.de/C/win32/win32_1.shtml#4</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157700</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Thu, 19 Oct 2006 14:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Thu, 19 Oct 2006 16:17:28 GMT]]></title><description><![CDATA[<p>Elektronix schrieb:</p>
<blockquote>
<p>Was bezweckst Du damit: [...]</p>
</blockquote>
<p>Damit kapselt er einfach den Erstellungsvorgang in ne Funktion.<br />
Ist aber -seh ich auch so- irgend wie überflüssig <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>Elektronix schrieb:</p>
<blockquote>
<p>Nein. IDC_ARROW oder IDI_APPLICATION sind nicht in der Resourcendatei definiert. Die kann man auch verwenden, wenn man sonst keine Resourcen hat, also müssen sie in der windows.h stehen, oder in einer von windows.h includierten Headerdatei.</p>
</blockquote>
<p>Jo klar, das sind ja aber nur die Standard-Images.</p>
<p>PS: Wenn sie eine 'von windows.h includierten Headerdatei', stehen sie auch in der windows.h :p .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157806</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 19 Oct 2006 16:17:28 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Fri, 20 Oct 2006 08:43:00 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Elektronix schrieb:</p>
<blockquote>
<p>Was bezweckst Du damit: [...]</p>
</blockquote>
<p>Damit kapselt er einfach den Erstellungsvorgang in ne Funktion.<br />
Ist aber -seh ich auch so- irgend wie überflüssig <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>
</blockquote>
<p>Aha.<br />
Dann wärs vielleicht sinnvoll, die ganze WinMain zu posten, sonst sieht man die Zusammenhänge nicht. Wahrscheinlich sitzt ein Fehler noch woanders.</p>
<p>Außerdem wurde die Funktion &quot;MessageHandler&quot; nicht an CreateMainWindow übergeben. lpfnWndProc ist also leer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158136</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Fri, 20 Oct 2006 08:43:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Fri, 20 Oct 2006 11:56:27 GMT]]></title><description><![CDATA[<p>Elektronix schrieb:</p>
<blockquote>
<p>Außerdem wurde die Funktion &quot;MessageHandler&quot; nicht an CreateMainWindow übergeben. lpfnWndProc ist also leer.</p>
</blockquote>
<p>Wieso, muss sie doch auch nicht...Ich gehe mal stark davon aus das er eingangs davon einen (globalen!) Prototypen deklariert hat. Damit<br />
entfällt die Parameterübergabe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158296</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 20 Oct 2006 11:56:27 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Fri, 20 Oct 2006 12:06:12 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Ich gehe mal stark davon aus</p>
</blockquote>
<p>Ja, vermutlich...<br />
Ich mein ja nur-: veryXRV hat ein Problem, bei dessen Lösung wir helfen sollen. Da wir den Fehler nicht finden, liegt er wohl in einem Code-Teil, den er nicht mitgepostet hat. (Es sei denn, der Fehler ist schon behoben. Er meldet sich ja nicht mehr).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158308</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Fri, 20 Oct 2006 12:06:12 GMT</pubDate></item><item><title><![CDATA[Reply to CreateWindowEx funktioniert einfach nicht! on Fri, 20 Oct 2006 12:10:58 GMT]]></title><description><![CDATA[<p>Jop, stimmt <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="😉"
    /> . Lassen wir das Rätselraten lieber <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/1158318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158318</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 20 Oct 2006 12:10:58 GMT</pubDate></item></channel></rss>