BitMap als Hntergrund in einer Dialog Anwendung



  • Mahlzeit !
    Ich habe da ein Problem,

    ich würde gerne in meine Dialog basierte Anwendung ein Hintergrundbild einfügen, doch wenn ich einfach nur ein Bild einfüge, liegt dieses über allen Schaltflächen, wie schaffe ich es, das das Bild im Hintergrund liegt ???



  • Entweder das bild mit Strg+D (im Res-Editor) als erstes markieren oder du malst dein Bild in CMyDlg::OnPaint



  • Leider funzt beides nicht, wenn ich das Bild als erstes setze, wird es dennoch über allen anderen gezeichnet und auch wenn ich es in der OnPaint() funktion zeichne, legt es sich über alle Steuerelemente, was mache ich falsch ?
    Ich habe ein Feld angelegt und eine Membervariable dazu als CStatic. In diese füge ich dann mit SetBitmap() Das Bild ein.



  • In der Toolbar gibt es direkt ein Picture-Element.



  • Wo und was soll ich damit machen können ???



  • @ektoplasma2000

    Nochmal das Thema Bitmap als Dialog-Hintergrund als Step-by-Step Anleitung :

    1. HBRUSH Private-Member-Variable im Dialog anlegen :

    HBRUSH hBitmapBrush;
    

    2. In der OnInitDialog() unseren Brush mit dem Bitmap belegen:

    hBitmapBrush = CreatePatternBrush( (HBITMAP)LoadImage(NULL,"C:\\bild.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE) );
    

    3. Message-Handler für WM_CTLCOLOR anlegen und darin folgenden Code ausführen :

    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
    if(nCtlColor == CTLCOLOR_DLG) 
        hbr = hBitmapBrush; 
    
    return hbr;
    

    This is it...

    MfG veganza

    [ Dieser Beitrag wurde am 20.11.2002 um 12:03 Uhr von veganza editiert. ]


Anmelden zum Antworten