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