Bilder...



  • Hallo,

    ich mal wieder mit 2 Fragen:

    1. ich habe ein Picture Control auf meinem Forumlar welches ich wie folgt zur Laufzeit fülle:

    CBitmap bmp;
    if (bmp.LoadBitmap(BitmapID)==TRUE){
      m_picSignalStatus.SetBitmap(bmp);
    }
    

    Das tut auch einwandfrei. ABER: sobald mein Formular nun in den Hintergrund geschalten wird (also z.b. beim Minimieren) und dann wieder angezeigt wird, ist das Bild in der Picturebox verschwunden. Beim Neuzeichnen des Dialogs wird also das Bild nicht mitgezeichnet.
    Was kann ich da tun, dass mein schönes Bildchen nicht einfach so verschindet 😮 ?

    2. Wie gehe ich vor, wenn ich für meinen gesamten Dialog, welcher im wesentlichen Textfelder und Labels enthält, ein Hintergrundbild setzen will ? Natürlich soll es dann so sein, dass die Labels transparent sind und keinen grauen Hintergrund haben.
    Macht man das am besten so, dass man ein Picture Control über den ganzen Dialog zieht oder kann man das Hintergrundild auch direkt in den Dialog zeichnen? Ja ok ich bin überzeugt dass man das kann, aber wie schafft man es dabei, dass die Labels nicht "übermalt" werden ?

    Ich bedanke mich schonmal für zahlreiche Antworten 👍 .

    Gruß,
    Frank



  • Hi,

    lege die CBitmap Variable doch mal für die Dialogklasse an, dann dürfte das Problem zu Punkt 1 behoben sein.



  • oder zeiche ne doch in der On Size neu, also:

    void CDeinDialog::OnSize(UINT nType, int cx, int cy) 
    {
    	if ( nType = SIZE_MAXIMIZED )
    	{
                      m_picSignalStatus.SetBitmap(bmp);
    	}
    
    }
    


  • Das mit der CBitmap-Membervariable ist in meinem Fall nicht so ideal. Da müsste ich ja immer wieder (das betreffende Bild wird recht oft geändert) UpdateData aufrufen.

    Habe jetzt aber wie von (D)Evil vorgeschlagen, das Bild neu zeichnen lassen. Allerdings bei OnPaint anstatt bei OnSize. Danke für den Tipp!

    Und zu 2.? Hat da niemand einen Vorschlag ?



  • Zu 2: Ja man kann es direkt aus einer Bitmap darauf zeichenen....


Anmelden zum Antworten