grafische Oberfläche



  • Hi

    ich habe ein Problem. Und zwar will ich ein BMP als Hintergrundbild
    haben und dann
    noch Buttons darüber platzieren mit dem ich z.B. ein Kommando über die
    RS232 Schnittstelle an einen Controller schicken will Das schicken geht
    schon aber ich bekomme mein BMP Bild einfach nicht als Hintergrund bild
    in mein Visual C++ Projekt hin. Meistens wird der Buttons hinter das
    Bild verschoben oder wenn es davor ist kann ich es nicht beim editieren
    auswählen da immer das Hintergrundbild selektiert wird. Ich benutzte
    Visual Studio.NET.
    Gibt es denn nicht was anders wo man einfach ein BMP als Hintergrund
    einfügen.
    Es müsste aber weiterhin möglich sein meinen C++ Code einzufügen.

    Etlman



  • WM_ERASEBKGND überladen und darin dein Bild zeichnen, return TRUE zurückgeben fertig.

    Gruß



  • CTecS schrieb:

    WM_ERASEBKGND überladen und darin dein Bild zeichnen, return TRUE zurückgeben fertig.

    Gruß

    Danke für den Tipp. Hast du vielleicht noch ein Codebeispiel für mich ?

    Eltman



  • So Sollte das gehen (ACHTUNG hab das nicht getestet)

    BOOL CXXX::OnEraseBkgnd(CDC* pDC)
    {
        CRect rect;
        GetClientRect(&rect); //Zielgröße ermitteln
        CBitmap BM;  // Bitmap erzeugen
        BM.LoadBitmap(IDC_MyBitmap); //Bitmap Resource laden
        CDC dc; // Quell DC erzeugen
        dc.CreateCompatibleDC(pDC); // wie Ziel DC initialisieren
        dc.SelectObject(&BM); // Quellbitmap im Quell DC laden
        pDC.BitBlt(0,0,rect.Width(),rect.Hight(),&dc,0,0,SRCCOPY); // Quelle auf Ziel Blitten
        return TRUE;
    }
    

    Solle deine Grafik kleiner sein, so benutze StretchBlt anstatt BitBlt.

    Das ist nur eine Möglichkeit, das geht auch mit GDI+ für andere Grafikformate als BMP.

    Gruß Matthias



  • Danke Matthias

    ich werd das am Wochenende gleich mal ausprobieren da ich Heute und Morgen
    keine Zeit habe. Ein Bekannter hat mir zu Java geraden. Hab aber eigentlich keine
    Lust darauf da ich mich gerade etwas in C++ eingearbeitet habe.

    M.f.G.
    Eltman



  • Danke Matthias

    ich werd das am Wochenende gleich mal ausprobieren da ich Heute und Morgen
    keine Zeit habe. Ein Bekannter hat mir zu Java geraden. Hab aber eigentlich keine
    Lust darauf da ich mich gerade etwas in C++ eingearbeitet habe.

    M.f.G.
    Eltman


Anmelden zum Antworten