<?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[Kann nicht mit PreCreateWindow() den Fensterstil verändern]]></title><description><![CDATA[<p>Die Testanwendung &quot;window&quot; hat folgende Einstellungen: Multi Top-Level Docuements, mit Doc/View-Unterstützung, Container.</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">BOOL CwindowView::PreCreateWindow(CREATESTRUCT&amp; cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	cs.style = WS_THICKFRAME;

	return CView::PreCreateWindow(cs);
}
</code></pre>
<p>Der Build-Prozess verläuft erfolgreich. Beim Ausführen erscheint jedoch folgender Fehler:</p>
<blockquote>
<p>Debug Assertion Failed!<br />
Program: e:\...\window\debug\window.exe<br />
File: f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\viewcore.cpp<br />
Line: 63</p>
<p>For information on how your program can cause an assertion failure, see...</p>
</blockquote>
<p>Beim Klicken auf &quot;Ignore&quot; folgt die Meldung &quot;Fehler beim Erstellen eines leeren Dokuments.&quot;</p>
<p>Beim Klicken auf &quot;Retry&quot; kommt die Meldung &quot;window.exe has triggered a breakpoint&quot;, beim Klicken auf &quot;Break&quot; wird der Ausführprozess abgebrochen.</p>
<p>Wenn ich auf &quot;Ignore&quot; geklickt habe, folgender Debug-Output:</p>
<blockquote>
<p>Warning: Window creation failed: GetLastError returns 0x00000579<br />
Warning: could not create view for frame.<br />
Failed to create client pane/view for frame.<br />
Warning: Window creation failed: GetLastError returns 0x00000000<br />
Warning: failed to create CFrameWnd.<br />
Warning: CDocTemplate couldn't create a frame.<br />
The thread 'Win32 Thread' (0x774) has exited with code 0 (0x0).<br />
The thread 'Win32 Thread' (0x42c) has exited with code 0 (0x0).<br />
The program '[260] window.exe: Native' has exited with code 0 (0x0).</p>
</blockquote>
<p>Andere Sachen funktionieren, wie z.B. CDC::TextOut().</p>
<p>Was ist der Fehler? Ich habe sonst keinerlei Änderungen am vom MFC-Assistenten erstellten Code vorgenommen.</p>
<p>Der Fehler ist nur nicht da, wenn ich keine Doc/View Unterstützung verwende.</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/195456/kann-nicht-mit-precreatewindow-den-fensterstil-verändern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 16:01:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195456.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Oct 2007 19:25:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kann nicht mit PreCreateWindow() den Fensterstil verändern on Wed, 17 Oct 2007 19:26:12 GMT]]></title><description><![CDATA[<p>Die Testanwendung &quot;window&quot; hat folgende Einstellungen: Multi Top-Level Docuements, mit Doc/View-Unterstützung, Container.</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">BOOL CwindowView::PreCreateWindow(CREATESTRUCT&amp; cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	cs.style = WS_THICKFRAME;

	return CView::PreCreateWindow(cs);
}
</code></pre>
<p>Der Build-Prozess verläuft erfolgreich. Beim Ausführen erscheint jedoch folgender Fehler:</p>
<blockquote>
<p>Debug Assertion Failed!<br />
Program: e:\...\window\debug\window.exe<br />
File: f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\viewcore.cpp<br />
Line: 63</p>
<p>For information on how your program can cause an assertion failure, see...</p>
</blockquote>
<p>Beim Klicken auf &quot;Ignore&quot; folgt die Meldung &quot;Fehler beim Erstellen eines leeren Dokuments.&quot;</p>
<p>Beim Klicken auf &quot;Retry&quot; kommt die Meldung &quot;window.exe has triggered a breakpoint&quot;, beim Klicken auf &quot;Break&quot; wird der Ausführprozess abgebrochen.</p>
<p>Wenn ich auf &quot;Ignore&quot; geklickt habe, folgender Debug-Output:</p>
<blockquote>
<p>Warning: Window creation failed: GetLastError returns 0x00000579<br />
Warning: could not create view for frame.<br />
Failed to create client pane/view for frame.<br />
Warning: Window creation failed: GetLastError returns 0x00000000<br />
Warning: failed to create CFrameWnd.<br />
Warning: CDocTemplate couldn't create a frame.<br />
The thread 'Win32 Thread' (0x774) has exited with code 0 (0x0).<br />
The thread 'Win32 Thread' (0x42c) has exited with code 0 (0x0).<br />
The program '[260] window.exe: Native' has exited with code 0 (0x0).</p>
</blockquote>
<p>Andere Sachen funktionieren, wie z.B. CDC::TextOut().</p>
<p>Was ist der Fehler? Ich habe sonst keinerlei Änderungen am vom MFC-Assistenten erstellten Code vorgenommen.</p>
<p>Der Fehler ist nur nicht da, wenn ich keine Doc/View Unterstützung verwende.</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1387438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1387438</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Wed, 17 Oct 2007 19:26:12 GMT</pubDate></item><item><title><![CDATA[Reply to Kann nicht mit PreCreateWindow() den Fensterstil verändern on Wed, 17 Oct 2007 19:36:38 GMT]]></title><description><![CDATA[<p>Das ist ein ungültiger Stil.<br />
Wenn Du diesen Stil hinzufügen möchtest musst Du den OR operator verwenden:</p>
<pre><code class="language-cpp">BOOL CwindowView::PreCreateWindow(CREATESTRUCT&amp; cs)
{
    cs.style |= WS_THICKFRAME;
    return CView::PreCreateWindow(cs);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1387443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1387443</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 17 Oct 2007 19:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to Kann nicht mit PreCreateWindow() den Fensterstil verändern on Wed, 17 Oct 2007 19:47:01 GMT]]></title><description><![CDATA[<p>Mittlerweile habe ich die Fehlerquelle - es lag nicht am &quot;=&quot;, denn mit &quot;|=&quot; hab ich es auch probiert. Da hat er zwar keine Fehlermeldung ausgegeben, doch leider wurde der Stil &quot;Thickframe&quot; auch gar nicht dem Fenster hinzugefügt.</p>
<p>Ich hab es jetzt in CMainFrame::PreCreateWindow() statt CView::PreCreateWindow() reingeschrieben, und es klappt.<br />
Da fragt man sich als C++/MFC-Anfäner aber: Wozu ist dann CView::PreCreateWindow() überhaupt da?</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1387451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1387451</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Wed, 17 Oct 2007 19:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to Kann nicht mit PreCreateWindow() den Fensterstil verändern on Wed, 17 Oct 2007 19:49:24 GMT]]></title><description><![CDATA[<p>Jedes Fenster hat seinen eigenen Stil. PreCreateWindow wird verwendet um den entsprechenden Stil eben anzupassen...</p>
<p>Ein CMainFRame enthält evtl. eben ein MDI-Frame WIndiw welches wieder ein MDI-CHild enthält und dieses enthält wieder den View. Alles Fenster, alle haben einen eigenen Stil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1387452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1387452</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 17 Oct 2007 19:49:24 GMT</pubDate></item><item><title><![CDATA[Reply to Kann nicht mit PreCreateWindow() den Fensterstil verändern on Wed, 17 Oct 2007 19:52:21 GMT]]></title><description><![CDATA[<p>Ja, doch warum entsteht dann dieser Fehler? Denn, wie gesagt: Am &quot;=&quot; bzw. &quot;|=&quot; lag es nicht.</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1387453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1387453</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Wed, 17 Oct 2007 19:52:21 GMT</pubDate></item><item><title><![CDATA[Reply to Kann nicht mit PreCreateWindow() den Fensterstil verändern on Thu, 18 Oct 2007 06:01:23 GMT]]></title><description><![CDATA[<p>a-jage schrieb:</p>
<blockquote>
<p>Ja, doch warum entsteht dann dieser Fehler? Denn, wie gesagt: Am &quot;=&quot; bzw. &quot;|=&quot; lag es nicht.</p>
<p>A-jage</p>
</blockquote>
<p>Du hast dem View einen Stil verpasst der ungültig ist. Der View intern mus wenigstens den WS_CHILD Stil haben! Zudem ist WS_THICKFRAME für Child Windows IMHO inkompatibel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1387580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1387580</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 18 Oct 2007 06:01:23 GMT</pubDate></item><item><title><![CDATA[Reply to Kann nicht mit PreCreateWindow() den Fensterstil verändern on Thu, 18 Oct 2007 18:22:05 GMT]]></title><description><![CDATA[<p>Aso, ok.</p>
<p>A-jage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388124</guid><dc:creator><![CDATA[a-jage]]></dc:creator><pubDate>Thu, 18 Oct 2007 18:22:05 GMT</pubDate></item></channel></rss>