<?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[SDI-Anwendung bei falscher Bildschirmauflösung abbrechen]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine SDI-Andwendung (VC7) und überprüfe in CMainFrame::PreCreateWindow die akuelle Bildschirmauflösung. Bei einer falschen Auflösung möchte ich eine Meldung (AfxMessageBox...) ausgeben und das Programm beenden.</p>
<p>Frage: Wie kann ich das Programm beenden?</p>
<p>BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp; cs)<br />
{<br />
if( !CFrameWnd::PreCreateWindow(cs) )<br />
return FALSE;<br />
// TODO: Ändern Sie hier die Fensterklasse oder die Darstellung, indem<br />
// CREATESTRUCT cs modifizieren.<br />
int i_breite = GetSystemMetrics( SM_CXSCREEN );<br />
int i_hoehe = GetSystemMetrics( SM_CYSCREEN );</p>
<p>// Anzeigemodus ist 1024 x 768<br />
if( (i_breite == 1024) &amp;&amp; (i_hoehe == 768) ) {<br />
cs.x = 0;<br />
cs.y = 0;<br />
<a href="http://cs.cx" rel="nofollow">cs.cx</a> = GetSystemMetrics(SM_CXFULLSCREEN);<br />
<a href="http://cs.cy" rel="nofollow">cs.cy</a> = GetSystemMetrics(SM_CYFULLSCREEN) + GetSystemMetrics(SM_CYCAPTION);<br />
cs.style |= WS_MAXIMIZE;<br />
cs.style &amp;= ~WS_THICKFRAME; // TO avoid resizing<br />
cs.style &amp;= ~WS_MAXIMIZEBOX; // Disable maximize button<br />
}<br />
else {<br />
// Bildschirmaufloesung zu gering<br />
AfxMessageBox( IDS_MSG_01, MB_OK | MB_ICONSTOP );<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/82548/sdi-anwendung-bei-falscher-bildschirmauflösung-abbrechen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 03:32:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/82548.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Aug 2004 08:03:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SDI-Anwendung bei falscher Bildschirmauflösung abbrechen on Thu, 12 Aug 2004 08:03:40 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine SDI-Andwendung (VC7) und überprüfe in CMainFrame::PreCreateWindow die akuelle Bildschirmauflösung. Bei einer falschen Auflösung möchte ich eine Meldung (AfxMessageBox...) ausgeben und das Programm beenden.</p>
<p>Frage: Wie kann ich das Programm beenden?</p>
<p>BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp; cs)<br />
{<br />
if( !CFrameWnd::PreCreateWindow(cs) )<br />
return FALSE;<br />
// TODO: Ändern Sie hier die Fensterklasse oder die Darstellung, indem<br />
// CREATESTRUCT cs modifizieren.<br />
int i_breite = GetSystemMetrics( SM_CXSCREEN );<br />
int i_hoehe = GetSystemMetrics( SM_CYSCREEN );</p>
<p>// Anzeigemodus ist 1024 x 768<br />
if( (i_breite == 1024) &amp;&amp; (i_hoehe == 768) ) {<br />
cs.x = 0;<br />
cs.y = 0;<br />
<a href="http://cs.cx" rel="nofollow">cs.cx</a> = GetSystemMetrics(SM_CXFULLSCREEN);<br />
<a href="http://cs.cy" rel="nofollow">cs.cy</a> = GetSystemMetrics(SM_CYFULLSCREEN) + GetSystemMetrics(SM_CYCAPTION);<br />
cs.style |= WS_MAXIMIZE;<br />
cs.style &amp;= ~WS_THICKFRAME; // TO avoid resizing<br />
cs.style &amp;= ~WS_MAXIMIZEBOX; // Disable maximize button<br />
}<br />
else {<br />
// Bildschirmaufloesung zu gering<br />
AfxMessageBox( IDS_MSG_01, MB_OK | MB_ICONSTOP );<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/580667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/580667</guid><dc:creator><![CDATA[Tiger287]]></dc:creator><pubDate>Thu, 12 Aug 2004 08:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to SDI-Anwendung bei falscher Bildschirmauflösung abbrechen on Thu, 12 Aug 2004 08:12:35 GMT]]></title><description><![CDATA[<p>Ich habe das in InitInstance drin, hier mal der Abschnitt:</p>
<pre><code class="language-cpp">// Das hier ist nur der Rest von InitInstance, das davor ist hierfür unwichtig.

	// Erstmal holen wir uns die Auflösung des Monitors in Pixeln:
	CClientDC dc(NULL);
	int nXRes = dc.GetDeviceCaps(HORZRES);
	int nYRes = dc.GetDeviceCaps(VERTRES);

	// Wenn wir eine Auflösung haben, die kleiner ist als 1024 x 768, geben wir eine Meldung aus
	if ((nXRes &lt; X_RES) || (nYRes &lt; Y_RES))
	{
		AfxMessageBox(_T(&quot;Die Auflösung des Monitors muss mindestens 1024 x 768 betragen.\nÄndern Sie das bitte und starten Sie dann das Programm erneut.&quot;));
		return FALSE; // Das Programm darf nicht laufen!!!
	}
	// Wenn wir eine Auflösung von 1024 x 768 haben, wird das Fenster maximiert
	else if ((nXRes == X_RES) &amp;&amp; (nYRes == Y_RES))
	{
		m_pMainWnd-&gt;ShowWindow(SW_SHOWMAXIMIZED);
	}
	// Wir haben eine Auflösung größer als 1024 x 768, das Fenster wird also kleiner als der Bildschirm
	else
	{
		m_pMainWnd-&gt;ShowWindow(SW_SHOWNORMAL); // Soll eigentlich 1024 x 768 gross sein!!!
	}

	// Das Hauptfenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden.
	m_pMainWnd-&gt;UpdateWindow();

	return TRUE;
}
</code></pre>
<p>Die Größenfestlegung passiert dann da, wo du deinen Quellcode bisher hast. <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/580678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/580678</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 12 Aug 2004 08:12:35 GMT</pubDate></item><item><title><![CDATA[Reply to SDI-Anwendung bei falscher Bildschirmauflösung abbrechen on Thu, 12 Aug 2004 10:06:52 GMT]]></title><description><![CDATA[<p>War ein guter Tipp, funktioniert jetzt genau wie ich es wollte!</p>
<p>Schönen Dank <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/580798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/580798</guid><dc:creator><![CDATA[Tiger287]]></dc:creator><pubDate>Thu, 12 Aug 2004 10:06:52 GMT</pubDate></item></channel></rss>