<?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[Drucken mit Mfc]]></title><description><![CDATA[<p>Ich würde gerne eine CPP-Funktion programmieren, die eine Datei vom Typ Windows-BMP auf DINA4 ausdruckt, wenn Laufwerk, Pfad, und Seitenmaße als Parameter übergeben werden. Wichtig ist, daß der linke Rand, der obere Rand, die Seitenhöhe und die Seitenbreite exakt ausgedruckt wird. Kann man sowas mit Mfc programmieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/5665/drucken-mit-mfc</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 04:58:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/5665.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 May 2003 08:47:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Drucken mit Mfc on Mon, 05 May 2003 08:47:00 GMT]]></title><description><![CDATA[<p>Ich würde gerne eine CPP-Funktion programmieren, die eine Datei vom Typ Windows-BMP auf DINA4 ausdruckt, wenn Laufwerk, Pfad, und Seitenmaße als Parameter übergeben werden. Wichtig ist, daß der linke Rand, der obere Rand, die Seitenhöhe und die Seitenbreite exakt ausgedruckt wird. Kann man sowas mit Mfc programmieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/27592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/27592</guid><dc:creator><![CDATA[XGuenther]]></dc:creator><pubDate>Mon, 05 May 2003 08:47:00 GMT</pubDate></item><item><title><![CDATA[Reply to Drucken mit Mfc on Mon, 05 May 2003 09:15:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ja das geht mit den MFC.</p>
<p>1. Zuerst muss man das Koordinatesystem mit ScreenToClient bzw. ClientToScreen bestimmen.</p>
<p>2. über die folgende Funktion die man selber implementieren muss holt man sich den Drucker-Handle:</p>
<p>HDC CLVTestDlg::GetPrinterDC()<br />
{<br />
static DWORD dwNeeded, dwReturned;<br />
HDC hdc;<br />
static PRINTER_INFO_4* pinfo4;<br />
static PRINTER_INFO_5* pinfo5;</p>
<p>if(GetVersion() &amp; 0x80000000)<br />
{ // Windows 98<br />
// *********** Ermittelt den Platzbedarf für die Struktur PRINTER_INFO_5 *********************<br />
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, NULL, 0, &amp;dwNeeded, &amp;dwReturned);</p>
<p>// **************** fügt Daten in die Struktur ein *******************************************<br />
pinfo5 = (PRINTER_INFO_5*)malloc(dwNeeded);<br />
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE)pinfo5, dwNeeded, &amp;dwNeeded, &amp;dwReturned);</p>
<p>hdc = CreateDC(NULL, pinfo5-&gt;pPrinterName, NULL, NULL);<br />
free(pinfo5);<br />
}</p>
<p>else<br />
{ // Windows NT<br />
EnumPrinters(PRINTER_ENUM_NETWORK, NULL, 4, NULL, 0, &amp;dwNeeded, &amp;dwReturned);</p>
<p>pinfo4 = (PRINTER_INFO_4*)malloc(dwNeeded);<br />
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 4, (PBYTE)pinfo4, dwNeeded, &amp;dwNeeded, &amp;dwReturned);</p>
<p>hdc = CreateDC(NULL, pinfo4-&gt;pPrinterName, NULL, NULL);<br />
free(pinfo4);<br />
}<br />
return hdc;<br />
}</p>
<p>3. Wenn man den Handle hat, kann man mittels der Funktion GetDeviceCaps(...), informationen über den Drucker bekommen (wie z.B. horizontale und vertikale Pixelbreite). Das steht alles ganz gut in der Dokumentation der MSDN drinne.</p>
<p>4. Jetzt muss man nur noch den Algorithmus bestimmen und zwischen</p>
<p>if (StartDoc(...)<br />
StartPage(...);<br />
...<br />
EndPage(...);<br />
EndDoc(...);</p>
<p>implementieren.</p>
<p>Hoffe ich konnte weiterhelfen</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/27593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/27593</guid><dc:creator><![CDATA[Friedrich]]></dc:creator><pubDate>Mon, 05 May 2003 09:15:00 GMT</pubDate></item></channel></rss>