Bitmap über ein Fenster legen



  • Hallo, folgendes:

    Ich starte mein Notepad und dann wird meine Grafik in dem Notepad Fenster angezeigt. Dann schließe ich Notepad und öffne es erneut aber dann wird meine Grafik nicht wieder neu darein gezeichnet. Hat jemand eine Idee was ich hire falsch mache?

    #include <iostream>
    #include <conio.h>
    #include <windows.h>
    #include <Wingdi.h>
    
    using namespace std;
    
    int main()
    {
    
    while(1)
    {
    bool found = false;
    HWND hwnd;
    BITMAP bmp;
    HBITMAP hBitmap;
    
        do
        {
            hBitmap = (HBITMAP)LoadImage(NULL,"bitmap.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
            GetObject(hBitmap,sizeof(bmp),&bmp);
            hwnd = FindWindow(NULL,"Unbenannt - Editor");
    
            if (hwnd != 0 )
            {
                found = true;
            }
    
            else
            {
                found = false;
            }
        }
        while(found==false);
    
        if ( found == true )
        {
            HDC hDC = GetDC(hwnd);
    
            HDC hBitmapDC = CreateCompatibleDC(hDC);
            SelectObject(hBitmapDC,hBitmap);
    
            BitBlt(hDC,20,20,bmp.bmHeight,bmp.bmWidth,hBitmapDC,0,0,SRCCOPY);
    
            DeleteObject(hBitmap);
            ReleaseDC(hwnd,hBitmapDC);
            ReleaseDC(hwnd,hDC) ;
        }
    }
    
    }
    

  • Mod

    Du malst Deine Bitmap genau einmal. Und wenn Notepad sein Fenster neu zeichnet ist das was Du gezeichnet hast natürlich weg.

    Was hast Du gedacht würde da passieren?
    Was willst Du erreichen?



  • Außerdem ist es Ressourcenverschwendung, in der inneren Schleife immer wieder das Bitmap zu laden...



  • Meine Bitmap soll dauerhaft in Notepad zu sehen sein.

    Wenn Notepad geschlossen wird und dann wieder neu gestartet wird dann soll meine Bitmap wieder in Notepad zu sehen sein.



  • Hat keiner eine Idee?



  • Malermeister schrieb:

    Hat keiner eine Idee?

    Natürlich haben wir Ideen was man machen könnte; die Frage nach dem
    Sinn und Zweck ist aber unbeantortet. Eine System-Applikation wie
    Notepad zum Anzeigen eines Bildes zu missbrauchen ist möglich - aber
    aus Anwendersicht schlecht.

    Wenn Du Martins Frage beantworten könntest wäre Dir bereits klar geworden, das
    Fenster sich üblicherweise selbst verwalten und sich nicht einfach "übermalen"
    lassen. Das geht wenn überhaupt nur für kurze Zeit gut.

    Dein Bild gehört nicht zum Fenster, wird also auch von diesem nicht dargestellt.

    Wieso öffnest Du kein eigenes Fenster zum zeichnen?


Anmelden zum Antworten