<?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[Bitmapfrage]]></title><description><![CDATA[<p>Hi Leute ;),</p>
<p>Ich versuch ne Bitmap anzuzeigeb(IDB_BITMAP1).</p>
<p>Hier mal mein Code:</p>
<pre><code class="language-cpp">void CBitmapverarbeiten1View::OnDraw(CDC* pDC)
{
	CBitmapverarbeiten1Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// ZU ERLEDIGEN: Hier Code zum Zeichnen der ursprünglichen Daten hinzufügen
	CDC *m_pdcMemory = new CDC ;
        CBitmap *m_pBitmap = new CBitmap;	

	pDC-&gt;SetStretchBltMode (COLORONCOLOR);
	pDC-&gt;StretchBlt (20, -20, m_sizeDest.cx, -m_sizeDest.cy, m_pdcMemory, 0, 0, m_sizeSource.cx, m_sizeSource.cy, SRCCOPY);
	pDC-&gt;StretchBlt (450, -20, m_sizeDest.cx, -m_sizeDest.cy, m_pdcMemory, 0, 0, m_sizeSource.cx, m_sizeSource.cy, SRCCOPY);

}

void CBitmapverarbeiten1View::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();

	CDC *m_pdcMemory = new CDC;
        CBitmap *m_pBitmap = new CBitmap;	

	CSize sizeTotal (800, 1050);
	CSize sizeLine = CSize(sizeTotal.cx /100, sizeTotal.cy /100);
	SetScrollSizes (MM_LOENGLISH,sizeTotal,sizeTotal,sizeLine);

	BITMAP bm;
	if (m_pdcMemory-&gt;GetSafeHdc () == NULL)
	{
		CClientDC dc(this);
		OnPrepareDC (&amp;dc);
		m_pBitmap-&gt;LoadBitmap (IDB_BITMAP1);
		m_pdcMemory-&gt;CreateCompatibleDC (&amp;dc);
		m_pdcMemory-&gt;SelectObject (m_pBitmap);
		m_pBitmap-&gt;GetObject (sizeof(bm),&amp;bm);
		m_sizeSource.cx = bm.bmWidth;
		m_sizeSource.cy = bm.bmHeight;
		m_sizeDest = m_sizeSource;
		dc.DPtoLP (&amp;m_sizeDest);
	}
}
</code></pre>
<p>Wenn ich m_pdcMemory und m_pBitmap als Membervariable deklariere funktioniert die Sache.<br />
Deklariere ich aber lokal s.o. klappts nicht.<br />
Was fehlt ist die Zuweisung, aber wie mach ich das ?</p>
<p>Vielen dank schon mal vorab<br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175698/bitmapfrage</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 11:16:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175698.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Mar 2007 11:35:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitmapfrage on Tue, 13 Mar 2007 11:35:15 GMT]]></title><description><![CDATA[<p>Hi Leute ;),</p>
<p>Ich versuch ne Bitmap anzuzeigeb(IDB_BITMAP1).</p>
<p>Hier mal mein Code:</p>
<pre><code class="language-cpp">void CBitmapverarbeiten1View::OnDraw(CDC* pDC)
{
	CBitmapverarbeiten1Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// ZU ERLEDIGEN: Hier Code zum Zeichnen der ursprünglichen Daten hinzufügen
	CDC *m_pdcMemory = new CDC ;
        CBitmap *m_pBitmap = new CBitmap;	

	pDC-&gt;SetStretchBltMode (COLORONCOLOR);
	pDC-&gt;StretchBlt (20, -20, m_sizeDest.cx, -m_sizeDest.cy, m_pdcMemory, 0, 0, m_sizeSource.cx, m_sizeSource.cy, SRCCOPY);
	pDC-&gt;StretchBlt (450, -20, m_sizeDest.cx, -m_sizeDest.cy, m_pdcMemory, 0, 0, m_sizeSource.cx, m_sizeSource.cy, SRCCOPY);

}

void CBitmapverarbeiten1View::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();

	CDC *m_pdcMemory = new CDC;
        CBitmap *m_pBitmap = new CBitmap;	

	CSize sizeTotal (800, 1050);
	CSize sizeLine = CSize(sizeTotal.cx /100, sizeTotal.cy /100);
	SetScrollSizes (MM_LOENGLISH,sizeTotal,sizeTotal,sizeLine);

	BITMAP bm;
	if (m_pdcMemory-&gt;GetSafeHdc () == NULL)
	{
		CClientDC dc(this);
		OnPrepareDC (&amp;dc);
		m_pBitmap-&gt;LoadBitmap (IDB_BITMAP1);
		m_pdcMemory-&gt;CreateCompatibleDC (&amp;dc);
		m_pdcMemory-&gt;SelectObject (m_pBitmap);
		m_pBitmap-&gt;GetObject (sizeof(bm),&amp;bm);
		m_sizeSource.cx = bm.bmWidth;
		m_sizeSource.cy = bm.bmHeight;
		m_sizeDest = m_sizeSource;
		dc.DPtoLP (&amp;m_sizeDest);
	}
}
</code></pre>
<p>Wenn ich m_pdcMemory und m_pBitmap als Membervariable deklariere funktioniert die Sache.<br />
Deklariere ich aber lokal s.o. klappts nicht.<br />
Was fehlt ist die Zuweisung, aber wie mach ich das ?</p>
<p>Vielen dank schon mal vorab<br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244588</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Tue, 13 Mar 2007 11:35:15 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmapfrage on Tue, 13 Mar 2007 14:40:48 GMT]]></title><description><![CDATA[<p>? Warum zeichnest du nicht alles in der OnDraw? Weiß nicht so ganz was das in OnInitialUpdate bewirken soll ...</p>
<pre><code class="language-cpp">// Halt die Bitmap im Konstruktor laden ...
CBitmapverarbeiten1View::CBitmapverarbeiten1View() // ...
{
	// ...
	m_bitmap.LoadBitmap(IDB_BITMAP1); // protected: CBitmap m_bitmap; /* so in deiner Klasse definieren */
	// 
}

void CBitmapverarbeiten1View::OnDraw(CDC* pDC)
{
    CBitmapverarbeiten1Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	CDC dcMem;
	dcMem.CreateCompatibleDC(pDC);
	CBitmap* pOldBitmap = dcMem.SelectObject(&amp;m_bitmap);

	// Jetzt mal halt noch weiter rein und am ende kopierst du dann mit
	pDC-&gt;BitBlt(/* ... */); 
	// den Inhalt wieder in deinen pDC ...

	dcMem.SelectObject(pOldBitmap);
	dcMem.DeleteDC();
}
</code></pre>
<p>so in etwa ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244731</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 13 Mar 2007 14:40:48 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmapfrage on Wed, 14 Mar 2007 08:38:35 GMT]]></title><description><![CDATA[<p>Hi (D)Evil,<br />
danke für Deine Ant5wort.<br />
In OnInitialUpdate hab ichs reingeschrieben, damit die Bmp. und der Gerätekontext die selbe Lebensdauer haben wie das Programm.<br />
Deine Möglichkeit Funktioniert selbstverständlich.<br />
Was mich interessiert hätte ist, wie ich die Sache Coden müsste wenn ich Bmp. und Kontext nicht als Membervariablen benutze sondern mit :</p>
<pre><code class="language-cpp">CDC *m_pdcMemory = new CDC;
 CBitmap *m_pBitmap = new CBitmap;
</code></pre>
<p>arbeite lokal in den Funktionen OnDraw und OnInitialUpdate ?</p>
<p>regards<br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245177</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Wed, 14 Mar 2007 08:38:35 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmapfrage on Wed, 14 Mar 2007 13:16:56 GMT]]></title><description><![CDATA[<p>das würde nicht gehen ... bzw wäre es inperformant, da du bei jedem aufruf wieder die bitmap laden müsstest ... und man kann auch ein Objekt lokal erzeugen ... das hat nix damit zu tun ob aufm heap oder net ..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245411</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 14 Mar 2007 13:16:56 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmapfrage on Wed, 14 Mar 2007 15:04:45 GMT]]></title><description><![CDATA[<p>Jo,</p>
<p>inperformant isses wirklich !</p>
<p>regards<br />
<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="😉"
    /><br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245521</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Wed, 14 Mar 2007 15:04:45 GMT</pubDate></item></channel></rss>