<?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[bilder in anwendungsbereich]]></title><description><![CDATA[<p>wie kann ich ganz normale bilder in den anwenderbereich eines windowsprogrammes einfügen? Alternativ dazu vielleicht noch mit der pixelgröße.</p>
<p>Freundliche Grüße<br />
Opaliene</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/144795/bilder-in-anwendungsbereich</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 22:47:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/144795.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 21 Apr 2006 18:58:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to bilder in anwendungsbereich on Fri, 21 Apr 2006 18:58:20 GMT]]></title><description><![CDATA[<p>wie kann ich ganz normale bilder in den anwenderbereich eines windowsprogrammes einfügen? Alternativ dazu vielleicht noch mit der pixelgröße.</p>
<p>Freundliche Grüße<br />
Opaliene</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1042185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1042185</guid><dc:creator><![CDATA[Opaliene]]></dc:creator><pubDate>Fri, 21 Apr 2006 18:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to bilder in anwendungsbereich on Fri, 21 Apr 2006 20:37:40 GMT]]></title><description><![CDATA[<p>Also wenn ich dich richig verstehe willst du ein Bild (*.bmp) anstatt einer Füllfarbe in den Client-Bereich deines Fesnter bringen, richtig ?</p>
<p>...das geht so:</p>
<p>Du kannst die Bitmap unter WM_PAINT ins Client blitten:</p>
<p>(Ich gehe davon aus das du die Bitmap aus einer Datei holst die unter dem Pfad C:\\demo.bmp zu finden, wenn nicht; über ne Resource musst du die LoadImage Funktion durch folgende Funktion ersetzen:</p>
<pre><code class="language-cpp">LoadBitmap(hInst, MAKEINTRESOURCE(BITMAP_RESOURCE_ID));
// hInst ist die Programm-Instanz, entweder als globale Variable
// oder über GetModuleHandle(NULL) ermitteln.
</code></pre>
<p>)</p>
<pre><code class="language-cpp">case WM_PAINT:
    PAINTSTRUCT ps;
    HDC         hdcBmpMem;
    HBITMAP     hbmpOldBits,
                hbmpBkgnd;
    RECT        rcClient;
    BITMAP      bmInfo

    BeginPaint(hWnd, &amp;ps);
    // Speicherkontext für die Bitmap erstellen:
    hdcBmpMem = CreateCompatibleDC(ps.hdc);
    // Bitmap ins Programm laden:
    hbmpBkgnd = LoadImage(NULL, TEXT(&quot;C:\\demo.bmp&quot;), // Hier liegt die Bitmap
                          IMAGE_BITMAP, 0, 0,
                          LR_LOADSIZE | LR_DEFAULTCOLOR | LR_LOADFROMFILE);
    // Bitmap Infos ermitteln:
    GetObject(hbmpBkgnd, sizeof(BITMAP), &amp;bmInfo);
    // Bitmap in den Speicherkontext einsetzen:
    hbmpOldBits = (HBITMAP)SelectObject(hdcBmpMem, hbmpBkgnD);
    // Client Area ermitteln:
    GetClientRect(hWnd, &amp;rcClient);
    // und auf den Bildschirm blitten bzw strechten:
    StrechtBlt(ps.hdc, 0, 0, rcClient.right, rcClient.bottom, hdcBmpMem, 0, 0,
               bmInfo.bmWidth, bmInfo.bmHeight, SRCCOPY);
    // Hier weitere Zeichenaktionen möglich
    //
    // ...
    //
    // GDI-Clean Up:
    DeleteObject(SelectObject(hdcBmpMem, hbmpOldBits);
    DeleteDC(hdcBmpMem);
    EndPaint(hWnd, &amp;ps);
    break;
</code></pre>
<p>Hoffe ich konnte helfen... <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>
<p>PS: Kann sein dasn Tippfehler drin ist, habs nit getestet! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1042244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1042244</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 21 Apr 2006 20:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to bilder in anwendungsbereich on Sat, 22 Apr 2006 09:51:53 GMT]]></title><description><![CDATA[<p>(Ich gehe davon aus das du die Bitmap aus einer Datei holst die unter dem Pfad C:\\demo.bmp zu finden, wenn nicht; über ne Resource musst du die LoadImage Funktion durch folgende Funktion ersetzen:</p>
<p>C/C++ Code:<br />
LoadBitmap(hInst, MAKEINTRESOURCE(BITMAP_RESOURCE_ID));<br />
// hInst ist die Programm-Instanz, entweder als globale Variable<br />
// oder über GetModuleHandle(NULL) ermitteln.<br />
C/C++ Code:<br />
LoadBitmap(hInst, MAKEINTRESOURCE(BITMAP_RESOURCE_ID));<br />
// hInst ist die Programm-Instanz, entweder als globale Variable<br />
// oder über GetModuleHandle(NULL) ermitteln.</p>
<p>)</p>
<p>Dies verstehe ich nicht so ganz, was du damit meinst..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1042435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1042435</guid><dc:creator><![CDATA[Opaliene]]></dc:creator><pubDate>Sat, 22 Apr 2006 09:51:53 GMT</pubDate></item><item><title><![CDATA[Reply to bilder in anwendungsbereich on Sat, 22 Apr 2006 16:25:10 GMT]]></title><description><![CDATA[<p>Hi erstmal <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>
<p>Also du musst die Bildinformationen ja irgend woher bekommen...</p>
<p>Da bieten sich 2 Möglichkeiten an:</p>
<p>1. du bindest eine externe Bitmapdatei als Resource ein,</p>
<p>oder</p>
<p>2. du lädst die Bitmapdatei während der Programmlaufzeit, dann muss diese sich jedoch immer im angegebenen Pfad befinden.</p>
<p>mit</p>
<pre><code class="language-cpp">LoadBitmap(g_hInst, MAKEINTRESOURCE(ID));
</code></pre>
<p>lädst du die Datei aus deiner Executable (dem sg. Modul) heraus. Diese bindest du unter Visual C++ so ein:<br />
Einfügen -&gt;<br />
Resource -&gt;<br />
Bitmap in der Liste auswählen -&gt;<br />
Importieren -&gt;<br />
Bitmapdatei auswählen -&gt;<br />
Script.rc und resource.h abspeichern (imProjektverzeichnis) -&gt;<br />
beide Dateiem dem Projekt hinzufügen -&gt;<br />
resource.h includieren und fertig!!! <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 />
(jetzt kannst du LoadBitmap() wie unten gezeigt anwenden)</p>
<p>und mit</p>
<pre><code class="language-cpp">LoadImage(NULL, TEXT(&quot;C:\\demo.bmp&quot;), IMAGE_BITMAP, 0, 0,
          LR_DEFAULTSIZE | LR_DEFAULTCOLOR | LR_LOADFROMFILE);
</code></pre>
<p>lädst du während das Programm läuft eine Bitmap die unter dem Pfad C:\demo.bmp abgespeichert ist (welche dann angezeigt wird)...</p>
<p>PS: Wenn es diese Bitmap nicht gibt, der Pfad also bspw. nicht stimmt, dürfte das Fenster(bzw. der Anwendungbereich) vollständig schwarz gefärbt werden.<br />
Um das zu verhindern, kannst du den Return-Wert von LoadBitmap() bzw LoadImage() überprüfen, zB. so:</p>
<pre><code class="language-cpp">HBITMAP hbmpBkgnd;
if((hbmpBkgnd = LoadBitmap(g_hInst, MAKEINTRESOURCE(ID))) == NULL)
{
    // Fehler!
}
else
{
    // alles ok, hbmpBkgnd ist jetzt ein gültiger Handle zu deiner Bitmap
}
</code></pre>
<p>falls weitere Fragen da sind, frag mich ruhig <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="😉"
    /> <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>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1042785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1042785</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 22 Apr 2006 16:25:10 GMT</pubDate></item><item><title><![CDATA[Reply to bilder in anwendungsbereich on Sat, 22 Apr 2006 21:32:27 GMT]]></title><description><![CDATA[<p>so wie ich das sehe hast du gesagt entweder so oder so, aber du kombinierst es ja..</p>
<p>kann ich es auf einfachem wege wie mit einem icon machen oder muss ich einfach per resource ein handle zur datei erstellen?</p>
<p>und der code zur laufzeit hat hier einen fehler:</p>
<p>hbmpBkgnd = LoadImage(NULL, TEXT(&quot;x.bmp&quot;), // Hier liegt die Bitmap<br />
IMAGE_BITMAP, 0, 0,<br />
LR_DEFAULTSIZE | LR_DEFAULTCOLOR | LR_LOADFROMFILE);</p>
<p>invalid conversation von void* zu HBITMAP__*</p>
<p>heißt übrigens defaultsize soviel ich weiß..</p>
<p>sry wenn ich nerve <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1043032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043032</guid><dc:creator><![CDATA[Opaliene]]></dc:creator><pubDate>Sat, 22 Apr 2006 21:32:27 GMT</pubDate></item><item><title><![CDATA[Reply to bilder in anwendungsbereich on Sat, 22 Apr 2006 22:03:22 GMT]]></title><description><![CDATA[<p>also erstmal: du nervst NICHT!! <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>
<p>1]<br />
das ist richtig: ENTWEDER als Resource ODER als externe Datei dynamisch laden<br />
<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>2]</p>
<blockquote>
<p>heißt übrigens defaultsize soviel ich weiß..</p>
</blockquote>
<p>bezüglich des ersten Beispiels hast du Recht, hab mich vertippt, (bei den weitere Beispielen ist es dann richtig wie man sieht)...</p>
<p>3]</p>
<blockquote>
<p>invalid conversation von void* zu HBITMAP__*</p>
</blockquote>
<p>also hab nur n bissl was vergessen:</p>
<p>Der Ergebnistyp der Funktion LoadImage() ist HANDLE, HANDLE ist als void* definiert, also ein typenloser Zeiger, das ist bei HBITMAP auch der Fall, der Compiler wünscht hier nur ne expliziete Typenumwandlung also so (sry das ichs vergessen hab <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>(nochmal der ganze Code für WM_PAINT)</p>
<pre><code class="language-cpp">case WM_PAINT:
    PAINTSTRUCT ps;
    HDC         hdcBmpMem;
    HBITMAP     hbmpOldBits,
                hbmpBkgnd;
    RECT        rcClient;
    BITMAP      bmInfo

    BeginPaint(hWnd, &amp;ps);
    // Speicherkontext für die Bitmap erstellen:
    hdcBmpMem = CreateCompatibleDC(ps.hdc);
    // Bitmap ins Programm laden:
    hbmpBkgnd = (HBITMAP)LoadImage(NULL, TEXT(&quot;C:\\demo.bmp&quot;), // Hier liegt die Bitmap
                          IMAGE_BITMAP, 0, 0,
                          LR_LOADSIZE | LR_DEFAULTCOLOR | LR_LOADFROMFILE);
    // Bitmap Infos ermitteln:
    GetObject(hbmpBkgnd, sizeof(BITMAP), &amp;bmInfo);
    // Bitmap in den Speicherkontext einsetzen:
    hbmpOldBits = (HBITMAP)SelectObject(hdcBmpMem, hbmpBkgnD);
    // Client Area ermitteln:
    GetClientRect(hWnd, &amp;rcClient);
    // und auf den Bildschirm blitten bzw strechten:
    StrechtBlt(ps.hdc, 0, 0, rcClient.right, rcClient.bottom, hdcBmpMem, 0, 0,
               bmInfo.bmWidth, bmInfo.bmHeight, SRCCOPY);
    // Hier weitere Zeichenaktionen möglich
    //
    // ...
    //
    // GDI-Clean Up:
    DeleteObject(SelectObject(hdcBmpMem, hbmpOldBits);
    DeleteDC(hdcBmpMem);
    EndPaint(hWnd, &amp;ps);
    break;
</code></pre>
<p>Welchen Compiler benutzt du eigentlich ?</p>
<p>Ach und...: Weißt du was ne HINSTANCE ist, hab vergessen das zu erklähren ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043053</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 22 Apr 2006 22:03:22 GMT</pubDate></item><item><title><![CDATA[Reply to bilder in anwendungsbereich on Sat, 22 Apr 2006 22:05:28 GMT]]></title><description><![CDATA[<p>soviel ich weiß ein handle zum fenster oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043056</guid><dc:creator><![CDATA[Opaliene]]></dc:creator><pubDate>Sat, 22 Apr 2006 22:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to bilder in anwendungsbereich on Sat, 22 Apr 2006 22:10:19 GMT]]></title><description><![CDATA[<p>ne nit ganz, jedes Programm(!) also nicht Fenster bekommt einen ID-Handle, das is die HINSTANCE also:</p>
<p>Handle to an Instance<br />
Handle zu einer Instanz</p>
<p>Wenn du eine Resource laden wills muss die entsprechende Funktion ja die Daten aus irgend einem Modul (=EXE oder DLL) herbekommen und identifiziert wird diese Quelle eben mit der HINSTANCE</p>
<p>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043061</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 22 Apr 2006 22:10:19 GMT</pubDate></item></channel></rss>