Hintergrundbild für einen Dialog

anmae

Erfahrenes Mitglied
Ich steh wiedermal ein wenig aufm schlauch.

bin schon soweit:

CBitmap bitmap;
bitmap.LoadBitmap(IDB_CONTACTBACKGROUND);
BITMAP bm;
bitmap.GetObject(sizeof(bm),&bm);
CDC speicherDC;
CClientDC dc( this );

Wie weise ich jetzt dem Dialog das Hintergrundbild zu?

thx
 
Code:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_CONTACTBACKGROUND);

BITMAP bm;
bitmap.GetObject(sizeof(bm),&bm);

CClientDC dc( this );

CDC speicherDC;
speicherDC.CreateCompatibleDC(&dc);

CBitmap *pOldBitmap = speicherDC.SelectObject(&bitmap);
dc.BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &speicherDC, 0, 0, SRCCOPY);

speicherDC.SelectObject(pOldBitmap);
 
und das in der OnInitDialog?

bei mir passiert noch nichts.
braucht der Dialog noch einen bestimmten Sytyle?
(ist ein Toolwindow)
 
Also,

ich hab das ganze jetzt in die OnCtlColor gepackt, und es geht.

leider sind jetzt meine ganzen Controls hinter dem Bild verschwunden, also mein Dialog besteht nur noch aus dem Bild.
kann mir da jemand helfen?
 
Ich hatte das gleiche Problem und habe es dank diesem Thread gut gelöst :)

NUR: Jetzt hab ich ein schönes Hintergrundbild, auf dem ich schon die Buttons und alles eingezeichnet hab. Wie schaffe ich jetzt dass die ganzen Steuerelemente "unsichtbar" sind?
Wenn ich visible auf FALSE setze, kann ich sie nicht mehr anklicken :(

Nochmal im Klartext, ich möchte dass man die normalen Buttons nicht mehr sieht, aber noch anklicken kann.

Wenn ich jene auf Transparent setze, sind sie zwar kurzzeitig im Hintergrund --> nicht sichtbar aber sobald ich sie anklicke, bleiben sie im Vordergrund :(

Danke schonmal :)
 
@Executer
Verzichte ganz auf die Buttons. Reagiere stattdessen auf die Mausklick-Events des Dialogs und löse die Aktion aus, wenn innerhalb eines bestimmten Bereiches geklickt wird.

Du kannst ja die als unsichtbar geschalteten Buttons als Platzhalter behalten, um recht bequem die Koordinatenbereiche zu ermitteln, in die geklickt werden muss.
 
Dann ist es wahrscheinlich am sinnvollsten, von jedem zu verwendenden Steuerelement eine eigene Klasse abzuleiten und das Teil dann selber zu zeichnen. Bei transparenten Elementen also z.B. der darunterliegende Hintergrundbereich.
 
Zurück