<?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[brauche hilfe bei BitBlt]]></title><description><![CDATA[<p>hab ein problem mit bitblt und zwar wird bei mir nix angezeigt.<br />
ich hab ne listview, wo ich alles per drawitem mit bitblt reinzeichnen will,<br />
es ist aber alles nur weiß.<br />
wenn ich es direkt in den hDC vom listview mache, dann funzt es,<br />
aber das ist nicht so toll, da irgendwann fehler auftreten!</p>
<p>(ich zeichne erst alles in hMemDC und kopier es dann in hDC)</p>
<p>hier mein code:</p>
<pre><code>LPDRAWITEMSTRUCT lpdis = ( LPDRAWITEMSTRUCT ) lParam;

			if ( lpdis-&gt;hwndItem == hList )
			{		
				COLORREF m_crHighlight    = RGB ( 160, 141, 250 );
				COLORREF m_crNoHighlight  = RGB ( 128, 128, 128 );
				COLORREF m_crGlow		  = RGB ( 200, 50, 50 );
				COLORREF m_crFocusLine    = m_crHighlight;
				COLORREF m_crNoFocusLine  = RGB ( 50, 123, 90 );

				RECT rcItem = lpdis-&gt;rcItem;
				RECT rect = rcItem;

				int iItem = lpdis-&gt;itemID;

				hHeader = ListView_GetHeader ( hList );

				int iCount = Header_GetItemCount ( hHeader );

				hListDC = lpdis-&gt;hDC;
				hMemDC  = CreateCompatibleDC ( hListDC );

				hBitmap = CreateCompatibleBitmap ( hListDC, rcItem.right - rcItem.left, rcItem.bottom - rcItem.top );
                hOldBitmap = ( HBITMAP ) SelectObject ( hMemDC, hBitmap );

				LVITEM lvi;
				lvi.mask = LVIF_IMAGE | LVIF_STATE;
				lvi.iItem = iItem;
				lvi.iSubItem = 0;
				lvi.stateMask = LVIS_DROPHILITED | LVIS_FOCUSED | LVIS_SELECTED | LVIS_GLOW; 

				ListView_GetItem ( hList, &amp;lvi );

				RECT rcBounds, rcLabel, rcIcon;
				ListView_GetItemRect ( hList, iItem, &amp;rcBounds, LVIR_BOUNDS );
				ListView_GetItemRect ( hList, iItem, &amp;rcLabel, LVIR_LABEL );
				ListView_GetItemRect ( hList, iItem, &amp;rcIcon, LVIR_ICON ); 

				RECT rcHighlight;

				rcHighlight.top    = rcBounds.top;
				rcHighlight.bottom = rcBounds.bottom;
				rcHighlight.left   = rcBounds.left  + 1;
				rcHighlight.right  = rcBounds.right - 1;

				BOOL bHighlight = ( ( lvi.state &amp; LVIS_DROPHILITED ) || ( lvi.state &amp; LVIS_SELECTED ) );
				BOOL bCtrlFocused = ( ( GetFocus () == hList ) || ( ListView_GetExtendedListViewStyle ( hList ) &amp; LVS_SHOWSELALWAYS ) );
				BOOL bGlowing = ( lvi.state &amp; LVIS_GLOW );

				if ( bHighlight ) 
				{
					if ( bCtrlFocused ) 
					{
						hBrush = CreateSolidBrush ( m_crHighlight );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush );
					}		
					else if ( bGlowing )
					{
						hBrush = CreateSolidBrush ( m_crGlow );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
					else 
					{
						hBrush = CreateSolidBrush ( m_crNoHighlight );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
				}
				else
				{
					if ( bGlowing )
					{
						hBrush = CreateSolidBrush ( m_crGlow );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
					else
					{
						hBrush = CreateSolidBrush ( RGB ( 0, 0, 255 ) );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush ); // was already done with WM_ERASEBKGND
					}
				}

				//draw focus rectangle if item has focus
				if ( ( lvi.state &amp; LVIS_FOCUSED ) &amp;&amp; ( bCtrlFocused || ( lvi.state &amp; LVIS_SELECTED ) ) ) 
				{
					if ( !bCtrlFocused || !( lvi.state &amp; LVIS_SELECTED ) ) {
						hBrush = CreateSolidBrush ( m_crNoFocusLine );
						FrameRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
					else {
						hBrush = CreateSolidBrush ( m_crFocusLine );
						FrameRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
				}

				for ( int iCurrent = 0; iCurrent &lt; iCount; iCurrent ++ ) 
				{
					int iColumn = Header_OrderToIndex ( hHeader, iCurrent );

					switch ( iColumn ) 
					{
					case 0:
						{
							DrawText ( hMemDC, &quot;Column 0&quot;, -1, &amp;rect, DT_LEFT );
						}
						break;
					case 1:
						{
							rect.right -= ListView_GetColumnWidth ( hList, iColumn + 1 );

							DrawText ( hMemDC, &quot;Column 1&quot;, -1, &amp;rect, DT_RIGHT );

							rect.right += ListView_GetColumnWidth ( hList, iColumn + 1 );
						}
						break;
					case 2:
						{
							DrawText ( hMemDC, &quot;Column 2&quot;, -1, &amp;rect,  DT_RIGHT );
						}
						break;
					}

					rect.left += ListView_GetColumnWidth ( hList, iColumn );
				}

				BitBlt ( hListDC, rcItem.left, rcItem.top, rcItem.right - rcItem.left, rcItem.bottom - rcItem.top,
						 hMemDC, NULL, NULL, SRCCOPY );

				SelectObject ( hMemDC, hOldBitmap );
			}
</code></pre>
<p>kann einer helfen?</p>
<p>//eSl@d3vil</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/99766/brauche-hilfe-bei-bitblt</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 17:38:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/99766.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Jan 2005 17:38:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Thu, 03 Feb 2005 00:46:30 GMT]]></title><description><![CDATA[<p>hab ein problem mit bitblt und zwar wird bei mir nix angezeigt.<br />
ich hab ne listview, wo ich alles per drawitem mit bitblt reinzeichnen will,<br />
es ist aber alles nur weiß.<br />
wenn ich es direkt in den hDC vom listview mache, dann funzt es,<br />
aber das ist nicht so toll, da irgendwann fehler auftreten!</p>
<p>(ich zeichne erst alles in hMemDC und kopier es dann in hDC)</p>
<p>hier mein code:</p>
<pre><code>LPDRAWITEMSTRUCT lpdis = ( LPDRAWITEMSTRUCT ) lParam;

			if ( lpdis-&gt;hwndItem == hList )
			{		
				COLORREF m_crHighlight    = RGB ( 160, 141, 250 );
				COLORREF m_crNoHighlight  = RGB ( 128, 128, 128 );
				COLORREF m_crGlow		  = RGB ( 200, 50, 50 );
				COLORREF m_crFocusLine    = m_crHighlight;
				COLORREF m_crNoFocusLine  = RGB ( 50, 123, 90 );

				RECT rcItem = lpdis-&gt;rcItem;
				RECT rect = rcItem;

				int iItem = lpdis-&gt;itemID;

				hHeader = ListView_GetHeader ( hList );

				int iCount = Header_GetItemCount ( hHeader );

				hListDC = lpdis-&gt;hDC;
				hMemDC  = CreateCompatibleDC ( hListDC );

				hBitmap = CreateCompatibleBitmap ( hListDC, rcItem.right - rcItem.left, rcItem.bottom - rcItem.top );
                hOldBitmap = ( HBITMAP ) SelectObject ( hMemDC, hBitmap );

				LVITEM lvi;
				lvi.mask = LVIF_IMAGE | LVIF_STATE;
				lvi.iItem = iItem;
				lvi.iSubItem = 0;
				lvi.stateMask = LVIS_DROPHILITED | LVIS_FOCUSED | LVIS_SELECTED | LVIS_GLOW; 

				ListView_GetItem ( hList, &amp;lvi );

				RECT rcBounds, rcLabel, rcIcon;
				ListView_GetItemRect ( hList, iItem, &amp;rcBounds, LVIR_BOUNDS );
				ListView_GetItemRect ( hList, iItem, &amp;rcLabel, LVIR_LABEL );
				ListView_GetItemRect ( hList, iItem, &amp;rcIcon, LVIR_ICON ); 

				RECT rcHighlight;

				rcHighlight.top    = rcBounds.top;
				rcHighlight.bottom = rcBounds.bottom;
				rcHighlight.left   = rcBounds.left  + 1;
				rcHighlight.right  = rcBounds.right - 1;

				BOOL bHighlight = ( ( lvi.state &amp; LVIS_DROPHILITED ) || ( lvi.state &amp; LVIS_SELECTED ) );
				BOOL bCtrlFocused = ( ( GetFocus () == hList ) || ( ListView_GetExtendedListViewStyle ( hList ) &amp; LVS_SHOWSELALWAYS ) );
				BOOL bGlowing = ( lvi.state &amp; LVIS_GLOW );

				if ( bHighlight ) 
				{
					if ( bCtrlFocused ) 
					{
						hBrush = CreateSolidBrush ( m_crHighlight );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush );
					}		
					else if ( bGlowing )
					{
						hBrush = CreateSolidBrush ( m_crGlow );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
					else 
					{
						hBrush = CreateSolidBrush ( m_crNoHighlight );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
				}
				else
				{
					if ( bGlowing )
					{
						hBrush = CreateSolidBrush ( m_crGlow );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
					else
					{
						hBrush = CreateSolidBrush ( RGB ( 0, 0, 255 ) );
						FillRect ( hMemDC, &amp;rcHighlight, hBrush ); // was already done with WM_ERASEBKGND
					}
				}

				//draw focus rectangle if item has focus
				if ( ( lvi.state &amp; LVIS_FOCUSED ) &amp;&amp; ( bCtrlFocused || ( lvi.state &amp; LVIS_SELECTED ) ) ) 
				{
					if ( !bCtrlFocused || !( lvi.state &amp; LVIS_SELECTED ) ) {
						hBrush = CreateSolidBrush ( m_crNoFocusLine );
						FrameRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
					else {
						hBrush = CreateSolidBrush ( m_crFocusLine );
						FrameRect ( hMemDC, &amp;rcHighlight, hBrush );
					}
				}

				for ( int iCurrent = 0; iCurrent &lt; iCount; iCurrent ++ ) 
				{
					int iColumn = Header_OrderToIndex ( hHeader, iCurrent );

					switch ( iColumn ) 
					{
					case 0:
						{
							DrawText ( hMemDC, &quot;Column 0&quot;, -1, &amp;rect, DT_LEFT );
						}
						break;
					case 1:
						{
							rect.right -= ListView_GetColumnWidth ( hList, iColumn + 1 );

							DrawText ( hMemDC, &quot;Column 1&quot;, -1, &amp;rect, DT_RIGHT );

							rect.right += ListView_GetColumnWidth ( hList, iColumn + 1 );
						}
						break;
					case 2:
						{
							DrawText ( hMemDC, &quot;Column 2&quot;, -1, &amp;rect,  DT_RIGHT );
						}
						break;
					}

					rect.left += ListView_GetColumnWidth ( hList, iColumn );
				}

				BitBlt ( hListDC, rcItem.left, rcItem.top, rcItem.right - rcItem.left, rcItem.bottom - rcItem.top,
						 hMemDC, NULL, NULL, SRCCOPY );

				SelectObject ( hMemDC, hOldBitmap );
			}
</code></pre>
<p>kann einer helfen?</p>
<p>//eSl@d3vil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/711431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/711431</guid><dc:creator><![CDATA[eSl*d3vil]]></dc:creator><pubDate>Thu, 03 Feb 2005 00:46:30 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Mon, 31 Jan 2005 18:16:15 GMT]]></title><description><![CDATA[<p>Hab nur ganz kurz drüber geschaut, aber das hier scheint mir auf jeden Fall mal falsch zu sein:</p>
<blockquote>
<pre><code class="language-cpp">m_OldBitmap = ( HBITMAP ) SelectObject ( hMemDC, &amp;m_Bitmap );
</code></pre>
</blockquote>
<p>Mach da mal vor m_Bitmap das &amp; weg <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/711468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/711468</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 31 Jan 2005 18:16:15 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Mon, 31 Jan 2005 18:18:09 GMT]]></title><description><![CDATA[<p>Und zum Schluss sowohl hMemDc als auch m_Bitmap wieder freigeben (DeleteDC, DeleteObject) oder nur einmal initialisieren und dann immer wieder verwenden, solange sie gebraucht werden. Sonst gibts irgendwann keine DCs mehr und der Speicher wird voll von Bitmaps.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/711472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/711472</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Mon, 31 Jan 2005 18:18:09 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Mon, 31 Jan 2005 18:29:55 GMT]]></title><description><![CDATA[<p>danke euch beiden!<br />
hab da voll nicht drauf geachtet!!<br />
funzt leider immernoch nicht!</p>
<p>eSl@d3vil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/711476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/711476</guid><dc:creator><![CDATA[eSl*d3vil]]></dc:creator><pubDate>Mon, 31 Jan 2005 18:29:55 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Mon, 31 Jan 2005 18:47:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">[...]
 FillRect ( hMemDC, &amp;rcHighlight, brush );
 // ist rcHighlight wirklich im Bitmap?
[...]
 BitBlt ( hDC, rcItem.left, rcItem.top, WidthOfRect ( &amp;rcItem ), HeightOfRect ( &amp;rcItem ),
                 hMemDC, rcItem.left/*im Bitmap?*/, rcItem.top/*im Bitmap?*/, SRCCOPY );
[...]
</code></pre>
<p>Mit &quot;im Bitmap&quot; meine ich: ist die x/y-Koordinate wirklich positiv und kleiner als Breite/Höhe?</p>
<p>Btw.: auch die Brushs musst du wieder freigeben oder eben nur einmal beim Programmstart erstellen und beim Ende wieder freigeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/711501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/711501</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Mon, 31 Jan 2005 18:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Tue, 01 Feb 2005 08:17:28 GMT]]></title><description><![CDATA[<p>ich hab die werte ma überprüft:</p>
<p>rcItem.left = 3<br />
rcItem.top = 20<br />
rcItem.right = 237<br />
rcItem.bottom = 34</p>
<p>WidthOfRect = 234<br />
HeightOfRect = 14</p>
<p>rcHighlight.left = 1<br />
rcHighlight.top = 20<br />
rcHighlight.right = 239<br />
rcHighlight.bottom = 34</p>
<p>hab dann ma für &quot;rcItem.left/*im Bitmap?*/&quot; und rcItem.top/*im Bitmap?*/<br />
1 eingesetzt und siehe da er gibt was aus, aber alles nur schwarz!!</p>
<p>muss ich den bgkmode auch jedesmal ändern?</p>
<p>//eSl@d3vil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/711859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/711859</guid><dc:creator><![CDATA[eSl*d3vil]]></dc:creator><pubDate>Tue, 01 Feb 2005 08:17:28 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Tue, 01 Feb 2005 13:11:08 GMT]]></title><description><![CDATA[<p>Wenn du dein CreateCompatibleBitmap mit WidthOfRect ( &amp;rcItem ) und HeightOfRect ( &amp;rcItem ) machst, dann hast du ja nachher (und das ist ja auch richtig) ein DC der so breit und hoch ist, wie dein Item. Allerdings beginnen dort dann auch die Koordinaten bei 0 und gehen bis WidthOfRect ( &amp;rcItem ) bzw. HeightOfRect ( &amp;rcItem ). Und bei BitBlt musst du dann wohl bei nXSrc (rcItem.left/*im Bitmap?*/) und nYSrc (rcItem.top/*im Bitmap?*/) jeweils 0 einsetzen, um den ganzen Memory-DC auf den Item-DC zu blitten <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/712030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/712030</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 01 Feb 2005 13:11:08 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Tue, 01 Feb 2005 13:45:49 GMT]]></title><description><![CDATA[<p>hab ich so gemacht!<br />
ist trotzdem alles schwarz!<br />
ich kann es nicht verstehen!<br />
(erst alles weiß jetzt alles schwarz) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/712058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/712058</guid><dc:creator><![CDATA[eSl*d3vil]]></dc:creator><pubDate>Tue, 01 Feb 2005 13:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Tue, 01 Feb 2005 18:01:20 GMT]]></title><description><![CDATA[<p>Bin mir gerade nicht sicher, aber liefert ListView_GetItemRect ein RECT mit left und top gleich 0, oder hast du den Code bereits geändert? Und dann bitte auch die Änderungen in deinem oben geposteten Code vornehmen, damit man sieht, wie dein Code jetzt aussieht <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/712274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/712274</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 01 Feb 2005 18:01:20 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Thu, 03 Feb 2005 00:43:41 GMT]]></title><description><![CDATA[<p>hab den code oben aktualisiert!<br />
ich glaub es liegt am createcompatiblebitmap!<br />
nur weiß ich net warum!<br />
es wird kein richtiges bitmap erstellt ( alles immer nur schwarz!!! )</p>
<p>hätte noch n problem und zwar wenn ich an den spaltenheadern öfters<br />
rumklicke und die größe änder, dann verlier ich irgendwann den memdc<br />
( also NULL ) und beim bitmap auch!<br />
weiß einer woran das liegt und wie man das beheben kann?</p>
<p>[EDIT:]</p>
<p>hab das auch ma bei nem ganz normalem weißen fenster ausprobiert und<br />
der gespeicherte bereich wird wieder in schwarz ausgegeben!</p>
<p><strong>WARUM SCHWARZ</strong>?????? *amverzweifelnbin*</p>
<p>//eSl@d3vil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713356</guid><dc:creator><![CDATA[eSl*d3vil]]></dc:creator><pubDate>Thu, 03 Feb 2005 00:43:41 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Thu, 03 Feb 2005 06:13:54 GMT]]></title><description><![CDATA[<p>Ich sehe fast keine der Anmerkungen umgesetzt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
- Du gibst nichts frei (DeleteObject).<br />
- Du arbeitest mit ListView_GetItemRect und wendest diesen direkt auf deinen memDC an. Wenn du mit memDC arbeitest musst du relative Item-Koordinaten verwenden <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/713396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713396</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 03 Feb 2005 06:13:54 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Thu, 03 Feb 2005 08:55:55 GMT]]></title><description><![CDATA[<p>die objekte werden jetzt bei WM_DESTROY freigegeben!<br />
und das mit dem ListView_GetItemRect benötige ich nur für den focus!<br />
( das kannste auch erstma ignorieren, denn er soll erstma den text ausgeben )<br />
für den memdc verwende ich den rect, den mir LPDRAWITEMSTRUCT übergibt!</p>
<p>das merkwürdige ist ja, wenn ich den Text und den Focus direkt in den hDC<br />
(lpdis-&gt;hDC) zeichne funktioniert alles, nur wenn ich erst alles in ein memdc zeichne und von da aus in den hDC blitte kommt nix bei rum!</p>
<p>eSl@d3vil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713468</guid><dc:creator><![CDATA[eSl*d3vil]]></dc:creator><pubDate>Thu, 03 Feb 2005 08:55:55 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Thu, 03 Feb 2005 11:18:44 GMT]]></title><description><![CDATA[<p>Du erstellst doch bei jedem Ausführen des geposteten Codes neue GDI-Objekte, die müssen ALLE freigegeben werden oder alternativ erstellst du sie nur einmal beim Programmstart zb. WM_CREATE (und nicht bei jedem Neuzeichnen des Listview), dann brauchst du sie auch nur bei WM_DESTROY wieder freizugeben.</p>
<p>Bei den DrawText funktionen gibst du rect als Parameter an, diese Variable wurde weiter oben mit RECT rect = rcItem; initialisiert, also sind die Koordinaten relativ zum Ursprung des Listview, damit sind sie wahrscheinlich alle, ausser der ersten, ausserhalb des Bitmap. Initialisier rect doch mal so:</p>
<pre><code class="language-cpp">rect.left = rect.top = 0;
rect.right = rcItem.right - rcItem.left;  //entspricht Breite des Bitmap
rect.bottom = rcItem.bottom - rcItem.top; //entspricht Höhe des Bitmap
</code></pre>
<p>Damit ist der Text auf jeden Fall im Bitmap.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713607</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Thu, 03 Feb 2005 11:18:44 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Thu, 03 Feb 2005 14:12:49 GMT]]></title><description><![CDATA[<p>thx @ daniel!</p>
<p>das mit dem text hat wirklich an dem rect gelegen!<br />
doch das schwarz ist immer noch dagewesen, also hab ich die ganze liste mit fillrect gefüllt!<br />
gibts da vielleicht noch ne bessere methode? kann man da nicht irgendwie den hintergrund löschen? denn setbkcolor klappt irgendwie net!</p>
<p>hab jetzt nur das problem, wenn ich zu oft am header von der liste rumziehe, dass sich dann die bitmap verabschiedet und der ganze dialog (bzw. die steuerelemnte verschwinden)<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>den aktuellen &quot;funktionierenden&quot; quelltext poste ich noch,<br />
muss erstma den quelltext säubern!! <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>
<p>//eSl@d3vil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713731</guid><dc:creator><![CDATA[eSl*d3vil]]></dc:creator><pubDate>Thu, 03 Feb 2005 14:12:49 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Thu, 03 Feb 2005 16:54:33 GMT]]></title><description><![CDATA[<p>eSl@d3vil schrieb:</p>
<blockquote>
<p>doch das schwarz ist immer noch dagewesen, also hab ich die ganze liste mit fillrect gefüllt!<br />
gibts da vielleicht noch ne bessere methode? kann man da nicht irgendwie den hintergrund löschen? denn setbkcolor klappt irgendwie net!</p>
</blockquote>
<p>Afaik ist FillRect schon das Richtige für dich.</p>
<p>eSl@d3vil schrieb:</p>
<blockquote>
<p>hab jetzt nur das problem, wenn ich zu oft am header von der liste rumziehe, dass sich dann die bitmap verabschiedet und der ganze dialog (bzw. die steuerelemnte verschwinden) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Das hört sich stark nach nicht freigegebenen GDI-Objekten an. Du kannst dir mal im Taskmanager die Spalte &quot;GDI-Objekte&quot; über Ansicht &gt; Spalten auswählen einfügen. Damit solltest du das recht schnell sehen <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/713882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713882</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 03 Feb 2005 16:54:33 GMT</pubDate></item><item><title><![CDATA[Reply to brauche hilfe bei BitBlt on Thu, 03 Feb 2005 21:09:47 GMT]]></title><description><![CDATA[<p>thx flenders!<br />
habs gefunden!<br />
lag am brush!! <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/714101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/714101</guid><dc:creator><![CDATA[eSl*d3vil]]></dc:creator><pubDate>Thu, 03 Feb 2005 21:09:47 GMT</pubDate></item></channel></rss>