<?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[CPrintDialog mit Papier Orientierung]]></title><description><![CDATA[<p>Abend,</p>
<p>Ich habe eine Dialog Klasse programmiert CMyPrintDialog welche ich von CPrintDialog abgeleitet habe. In diesen Dialog kann man die Standard Einstellungen von CPrintDialog bearbeiten und zusätzlich soll auch die Papier Orientierung geändert werden können.<br />
Leider fuktioniert das mit der übernahme der Papier Orientierung nicht.<br />
Weiß jemand wie man das lösen kann?</p>
<p>Die Folgende Methode soll die im Dialog eingestellte Papier Orientierung übernehmen.</p>
<pre><code class="language-cpp">void CMyPrintDialog::UseData()
{
  // Orientierung übernehmen

  CWinApp* pApp = AfxGetApp();
  pApp-&gt;GetPrinterDeviceDefaults(&amp;this-&gt;m_pd);

  if(this-&gt;m_Orientation == Portrait) 
  {
    // Hochformat benutzen
    DEVMODE *pDevMode = (DEVMODE*)::GlobalLock(this-&gt;m_pd.hDevMode);
    pDevMode-&gt;dmFields|=DM_ORIENTATION;
    pDevMode-&gt;dmOrientation = DMORIENT_PORTRAIT;
    ::GlobalUnlock(this-&gt;m_pd.hDevMode);
  }
  else if(this-&gt;m_Orientation == Landscape) 
  {
    // Querformat benutzen
    DEVMODE *pDevMode = (DEVMODE*)::GlobalLock(this-&gt;m_pd.hDevMode);
    pDevMode-&gt;dmFields|=DM_ORIENTATION;
    pDevMode-&gt;dmOrientation = DMORIENT_LANDSCAPE;
    ::GlobalUnlock(this-&gt;m_pd.hDevMode);
  }
}
</code></pre>
<p>PS benutze Visual C++ 6</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145293/cprintdialog-mit-papier-orientierung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 00:11:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145293.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Apr 2006 15:30:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CPrintDialog mit Papier Orientierung on Wed, 26 Apr 2006 15:30:21 GMT]]></title><description><![CDATA[<p>Abend,</p>
<p>Ich habe eine Dialog Klasse programmiert CMyPrintDialog welche ich von CPrintDialog abgeleitet habe. In diesen Dialog kann man die Standard Einstellungen von CPrintDialog bearbeiten und zusätzlich soll auch die Papier Orientierung geändert werden können.<br />
Leider fuktioniert das mit der übernahme der Papier Orientierung nicht.<br />
Weiß jemand wie man das lösen kann?</p>
<p>Die Folgende Methode soll die im Dialog eingestellte Papier Orientierung übernehmen.</p>
<pre><code class="language-cpp">void CMyPrintDialog::UseData()
{
  // Orientierung übernehmen

  CWinApp* pApp = AfxGetApp();
  pApp-&gt;GetPrinterDeviceDefaults(&amp;this-&gt;m_pd);

  if(this-&gt;m_Orientation == Portrait) 
  {
    // Hochformat benutzen
    DEVMODE *pDevMode = (DEVMODE*)::GlobalLock(this-&gt;m_pd.hDevMode);
    pDevMode-&gt;dmFields|=DM_ORIENTATION;
    pDevMode-&gt;dmOrientation = DMORIENT_PORTRAIT;
    ::GlobalUnlock(this-&gt;m_pd.hDevMode);
  }
  else if(this-&gt;m_Orientation == Landscape) 
  {
    // Querformat benutzen
    DEVMODE *pDevMode = (DEVMODE*)::GlobalLock(this-&gt;m_pd.hDevMode);
    pDevMode-&gt;dmFields|=DM_ORIENTATION;
    pDevMode-&gt;dmOrientation = DMORIENT_LANDSCAPE;
    ::GlobalUnlock(this-&gt;m_pd.hDevMode);
  }
}
</code></pre>
<p>PS benutze Visual C++ 6</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045793</guid><dc:creator><![CDATA[Progger2006]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:30:21 GMT</pubDate></item><item><title><![CDATA[Reply to CPrintDialog mit Papier Orientierung on Wed, 26 Apr 2006 16:02:51 GMT]]></title><description><![CDATA[<p>Das geht bei mir:</p>
<pre><code>// Set the orientation to the printer driver
	if (m_iOrientation==DMORIENT_PORTRAIT || m_iOrientation==DMORIENT_LANDSCAPE) 
	{
		// load default printer settings
		if (!GetDevMode())
			VERIFY(AfxGetApp()-&gt;GetPrinterDeviceDefaults(&amp;m_pd));

		// Get devmode again and set the orientation
	    LPDEVMODE pDevMode = GetDevMode();
	    if (pDevMode) 
		    // Change printer settings in here.
	        pDevMode-&gt;dmOrientation = static_cast&lt;short&gt;(m_iOrientation);
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1045814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045814</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 26 Apr 2006 16:02:51 GMT</pubDate></item><item><title><![CDATA[Reply to CPrintDialog mit Papier Orientierung on Thu, 27 Apr 2006 12:46:24 GMT]]></title><description><![CDATA[<p>Sorry bin erst jetzt wieder am Rechner,</p>
<p>danke für die schnelle anrwort Martin Richter.<br />
Ich habe das ausprobiert, funktioniert leider nicht im Dialog.<br />
Ich denke das liegt daran das ich dieses im CMyPrintDialog aufrufe.<br />
In der OnPreparePrinting würde es funktionieren da habe ich aber den Wert noch nicht weil der Dialog erst nach der OnPreparePrinting Methode geöffnet wird.</p>
<pre><code class="language-cpp">void CMyPrintDialog::OnOK() 
{	
  this-&gt;UseData();
  CPrintDialog::OnOK();
}
</code></pre>
<p>Weiß jemand wie man den Wert trotzdem setzen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046327</guid><dc:creator><![CDATA[Progger2006]]></dc:creator><pubDate>Thu, 27 Apr 2006 12:46:24 GMT</pubDate></item><item><title><![CDATA[Reply to CPrintDialog mit Papier Orientierung on Thu, 27 Apr 2006 14:02:55 GMT]]></title><description><![CDATA[<p>Ich vermute mal, dass Du Dir durch den CPrintDialog einen DC erzeugen lässt.<br />
Evtl. ist es zu spät wenn Du OnOk an dieser Stelle abfängst.</p>
<p>Versuche mal die Orientation direkt zu ändern, wenn die ComboBox oder eben das Control geändert wird, dass Du speziell in Deinem angepassten Dialog eingebaut hast.</p>
<p>Ich habe auch anderen Code bei dem bereits die Orientierung gesetzt wird bevor/beim Laden des Dialoges (also Wiederherstellung der alten Einstellung). Da geht es auch ohne Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046400</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 27 Apr 2006 14:02:55 GMT</pubDate></item><item><title><![CDATA[Reply to CPrintDialog mit Papier Orientierung on Thu, 27 Apr 2006 16:30:35 GMT]]></title><description><![CDATA[<p>Ging leider auch direkt nach der Änderung im Dialog nicht.</p>
<p>Wenn folgenden Code in der OnPreparePrinting aufgerufen wird dann wird das Querformat übernommen aber in der OnBeginPrinting funktioniert der gleiche Code nicht.</p>
<pre><code class="language-cpp">LPDEVMODE pDevMode = pd.GetDevMode();
  if(pDevMode)
    pDevMode-&gt;dmOrientation = static_cast&lt;short&gt;(DMORIENT_LANDSCAPE);
</code></pre>
<p>irgendwie muss das vom MFC Standard Aufbau gespeert werden.<br />
Aber es sollte doch trotzdem eine Möglichkeit geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046551</guid><dc:creator><![CDATA[Progger2006]]></dc:creator><pubDate>Thu, 27 Apr 2006 16:30:35 GMT</pubDate></item><item><title><![CDATA[Reply to CPrintDialog mit Papier Orientierung on Thu, 27 Apr 2006 16:49:32 GMT]]></title><description><![CDATA[<p>Da hatte ich doch was vergessen <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>
<pre><code class="language-cpp">CPrintDialog pd(false);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1046575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046575</guid><dc:creator><![CDATA[Progger2006]]></dc:creator><pubDate>Thu, 27 Apr 2006 16:49:32 GMT</pubDate></item></channel></rss>