<?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[Bitmap Wahnsinn]]></title><description><![CDATA[<p>hi leute,</p>
<p>ich mache gerade ein programm und dafür möchte ich pixel im fenster darstellen. sollte ja eigentlich ned so kompliziert sein, aber bei dieser völlig bekloppten gdi kann man mit dem thema bitmaps ja bücherregale füllen.</p>
<p>ich habe immoment diesen code</p>
<pre><code class="language-cpp">static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam,
								LPARAM lParam) {
	PAINTSTRUCT ps;
	HDC hDC, hDCMem;
	static LPBITMAPINFO lpbmi;
	static HBITMAP hBitmap;
	static LPBYTE lpBits;
int i;
	switch(uMsg) {
		case WM_CREATE:
			lpbmi = calloc(1, sizeof(BITMAPINFO) + 8 * sizeof(RGBQUAD));

			lpbmi-&gt;bmiHeader.biSize			= sizeof(lpbmi-&gt;bmiHeader);
			lpbmi-&gt;bmiHeader.biWidth		= 160;
			lpbmi-&gt;bmiHeader.biHeight		= 144;
			lpbmi-&gt;bmiHeader.biPlanes		= 1;
			lpbmi-&gt;bmiHeader.biBitCount		= 8;
			lpbmi-&gt;bmiHeader.biCompression	= BI_RGB;

			for(i = 0; i &lt; 16; i++) {
				lpbmi-&gt;bmiColors[i].rgbRed = rand() % 0xff;
				lpbmi-&gt;bmiColors[i].rgbGreen = rand() % 0xff;
				lpbmi-&gt;bmiColors[i].rgbBlue = rand() % 0xff;
			}

			if(!(hBitmap = CreateDIBSection(NULL, lpbmi, DIB_RGB_COLORS, &amp;lpBits,
				NULL, 0))) {
				ErrorMessage(_T(&quot;CreateDIBSection&quot;));
				return -1;
			}
[...]
</code></pre>
<p>jetzt kann ich mit StretchBlt oder SetDIBitsToDevice und so die pixel manipulieren, ok das funzt nun auch nach 3 stunden arbeit. aber ich frage mich, muss die LPBITMAPINFO struktur denn persistent sein oder kann ich sie nach dem aufruf von CreateDIBSection wieeder löschen? im internet finde ich da für beides viele beispiele? Also wenn ich sie lösche, werden doch auch die farb daten gelöscht oder kopiert CreateDIBSection die nochmal an einen anderen ort für sich?</p>
<p>viele grüße!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/219858/bitmap-wahnsinn</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 07:24:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/219858.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 Aug 2008 14:38:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitmap Wahnsinn on Fri, 08 Aug 2008 14:38:59 GMT]]></title><description><![CDATA[<p>hi leute,</p>
<p>ich mache gerade ein programm und dafür möchte ich pixel im fenster darstellen. sollte ja eigentlich ned so kompliziert sein, aber bei dieser völlig bekloppten gdi kann man mit dem thema bitmaps ja bücherregale füllen.</p>
<p>ich habe immoment diesen code</p>
<pre><code class="language-cpp">static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam,
								LPARAM lParam) {
	PAINTSTRUCT ps;
	HDC hDC, hDCMem;
	static LPBITMAPINFO lpbmi;
	static HBITMAP hBitmap;
	static LPBYTE lpBits;
int i;
	switch(uMsg) {
		case WM_CREATE:
			lpbmi = calloc(1, sizeof(BITMAPINFO) + 8 * sizeof(RGBQUAD));

			lpbmi-&gt;bmiHeader.biSize			= sizeof(lpbmi-&gt;bmiHeader);
			lpbmi-&gt;bmiHeader.biWidth		= 160;
			lpbmi-&gt;bmiHeader.biHeight		= 144;
			lpbmi-&gt;bmiHeader.biPlanes		= 1;
			lpbmi-&gt;bmiHeader.biBitCount		= 8;
			lpbmi-&gt;bmiHeader.biCompression	= BI_RGB;

			for(i = 0; i &lt; 16; i++) {
				lpbmi-&gt;bmiColors[i].rgbRed = rand() % 0xff;
				lpbmi-&gt;bmiColors[i].rgbGreen = rand() % 0xff;
				lpbmi-&gt;bmiColors[i].rgbBlue = rand() % 0xff;
			}

			if(!(hBitmap = CreateDIBSection(NULL, lpbmi, DIB_RGB_COLORS, &amp;lpBits,
				NULL, 0))) {
				ErrorMessage(_T(&quot;CreateDIBSection&quot;));
				return -1;
			}
[...]
</code></pre>
<p>jetzt kann ich mit StretchBlt oder SetDIBitsToDevice und so die pixel manipulieren, ok das funzt nun auch nach 3 stunden arbeit. aber ich frage mich, muss die LPBITMAPINFO struktur denn persistent sein oder kann ich sie nach dem aufruf von CreateDIBSection wieeder löschen? im internet finde ich da für beides viele beispiele? Also wenn ich sie lösche, werden doch auch die farb daten gelöscht oder kopiert CreateDIBSection die nochmal an einen anderen ort für sich?</p>
<p>viele grüße!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561512</guid><dc:creator><![CDATA[hacker0x6f]]></dc:creator><pubDate>Fri, 08 Aug 2008 14:38:59 GMT</pubDate></item></channel></rss>