<?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[schei** GDI - Bitmap prob]]></title><description><![CDATA[<p>also manchmal glaub' ich's nicht mehr....<br />
eine eigentlich (sollte man meinen) ganz einfache Aufgabe ... vielleicht bin ich ja auch nur zu blöd <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>
<p>-&gt; eine Bitmap-Datei laden<br />
-&gt; Größe anpassen<br />
-&gt; und in einem Dialog unter einem Static ausgeben.</p>
<p>soweit - sogut. bedingung: nur WinAPI</p>
<p>Lade ich das Teil einfach mit LoadImage() und schicke das Handle dann mit SendDlgItemMessage() an das Static Control, klappt das einwandfrei.</p>
<p>Versuch ich aber die Größe anzupassen via<br />
in einen memDC Selektieren, per StretchBlt() in einen 2. memDC mit anderer größe zu übertragen und schicke dann die per GetObject() nun geänderte Bitmap zu holen und an das Static CControl zu schicken, bekomm ich nur einen grauen Kasten.</p>
<p>Wo liegt das Problem?</p>
<p>//hPict ist das Sourcehandle</p>
<p>HDC memDCsrc = CreateCompatibleDC( GetDC( hDlg) );<br />
HDC memDCdest = CreateCompatibleDC( GetDC( hDlg) );<br />
newPict = CreateCompatibleBitmap( GetDC( hDlg), 225, 80 );</p>
<p>SelectObject( memDCsrc, hPict );<br />
SelectObject( memDCdest, newPict );<br />
StretchBlt( memDCdest, 0,0, 150,50, memDCsrc, 0,0, 50,10, SRCCOPY);</p>
<p>destPict = GetCurrentObject( memDCdest, OBJ_BITMAP );<br />
SendDlgItemMessage( hDlg, IDC_LOCPICT, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)destPict );</p>
<p>/Ulli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237307/schei-gdi-bitmap-prob</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 13:49:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237307.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Mar 2009 22:49:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to schei** GDI - Bitmap prob on Thu, 26 Mar 2009 22:49:27 GMT]]></title><description><![CDATA[<p>also manchmal glaub' ich's nicht mehr....<br />
eine eigentlich (sollte man meinen) ganz einfache Aufgabe ... vielleicht bin ich ja auch nur zu blöd <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>
<p>-&gt; eine Bitmap-Datei laden<br />
-&gt; Größe anpassen<br />
-&gt; und in einem Dialog unter einem Static ausgeben.</p>
<p>soweit - sogut. bedingung: nur WinAPI</p>
<p>Lade ich das Teil einfach mit LoadImage() und schicke das Handle dann mit SendDlgItemMessage() an das Static Control, klappt das einwandfrei.</p>
<p>Versuch ich aber die Größe anzupassen via<br />
in einen memDC Selektieren, per StretchBlt() in einen 2. memDC mit anderer größe zu übertragen und schicke dann die per GetObject() nun geänderte Bitmap zu holen und an das Static CControl zu schicken, bekomm ich nur einen grauen Kasten.</p>
<p>Wo liegt das Problem?</p>
<p>//hPict ist das Sourcehandle</p>
<p>HDC memDCsrc = CreateCompatibleDC( GetDC( hDlg) );<br />
HDC memDCdest = CreateCompatibleDC( GetDC( hDlg) );<br />
newPict = CreateCompatibleBitmap( GetDC( hDlg), 225, 80 );</p>
<p>SelectObject( memDCsrc, hPict );<br />
SelectObject( memDCdest, newPict );<br />
StretchBlt( memDCdest, 0,0, 150,50, memDCsrc, 0,0, 50,10, SRCCOPY);</p>
<p>destPict = GetCurrentObject( memDCdest, OBJ_BITMAP );<br />
SendDlgItemMessage( hDlg, IDC_LOCPICT, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)destPict );</p>
<p>/Ulli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686703</guid><dc:creator><![CDATA[Ulli]]></dc:creator><pubDate>Thu, 26 Mar 2009 22:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to schei** GDI - Bitmap prob on Fri, 27 Mar 2009 01:12:07 GMT]]></title><description><![CDATA[<p>tja. wer lesen kann ist klar im Vorteil <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Aus der Doku:<br />
(Bitmaps can be selected for memory device contexts only, and for only one device context at a time.)</p>
<p>Die Lösung:</p>
<p>DeleteDC( memDCdest );<br />
DeleteDC( memDCsrc );</p>
<p>VOR SendDlgItemMessage(), ...und schon klappts mit dem Bild <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>
<p>das &quot;and for only one device context at a time&quot; hatte ich überlesen und dazu noch gedacht, dass das Flag LR_SHARED bei LoadImage() durchgreift.<br />
Na gut, wieder was gelernt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>/Ulli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686721</guid><dc:creator><![CDATA[Ulli]]></dc:creator><pubDate>Fri, 27 Mar 2009 01:12:07 GMT</pubDate></item></channel></rss>