Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: C++ 2 Transparent Bilder übereinander anzeigen

  1. #1
    Registriert seit
    18.12.2009
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich schreibe gerade ein .ocx Control in C++ 2010 um und bin nun an einem Punkt wo ich nicht weiter weiß.
    Ich möchte für eine Prüfung ein Bild anzeigen wo ein Farbiger Kreis über den Bereich gelegt wird der geprüft werden soll.

    In Visual Studio 2010 kann ich einen neuen Dialog anlegen und diesen auch über eine Funktion anzeigen.
    In diesem Dialog kann ich ein Picture Control platzieren das mir ein Bitmap anzeigt. Bis hierher funktioniert alles.
    Will ich nun aber ein 2. Bitmap über dem ersten anzeigen wird dieses nicht angezeigt.
    Wenn ich den "Transparent" Haken in den Einstellungen setze wird auch nicht das Element unter dem Bild angezeigt, sondern da wo es Transparent sein soll wird einfach die Hintergrundfarbe des Dialogs angezeigt.


    Abhilfe gibt es durch GDI+.

    Ich habe ein Testprojekt was exakt das tut was ich möchte.
    Nur leider lässt sich das nicht auf die Dialoge im ocx Projekt übertragen.

    Der Code vom Testprojekt liegt bei(Einfach ein leeres Projekt erstellen und Code einfügen. Keine weiteren Header etc nötig)


    Das Problem was ich also habe ist das ich bei den Dialogen im ocx keinen Zufriff auf das "HDC" habe das bei der "VOID OnPaint(HDC hdc)" übergeben wird.

    Hat da schonmal jemand etwas in der Richtung realisiert?

    Bin für jede Hilfe dankbar!


    Stefan
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren C++ 2 Transparent Bilder übereinander anzeigen  

  2. #2
    Kallemann Gast

    Standard

    Hallo Stefan.

    Ich bin nicht in C++ zuhause, aber in Deinem Code habe ich etwas gelesen von background.jpg. Bilder im JPEG-Format unterstützen keine transparenten Hintergründe. Wenn Du stattdessen PNG-Bilder verwendest, sollte das Ganze funktionieren (ohne Garantie ).

    Ich weiß jetzt nicht, ob man mit Paint transparente Hintergründe in PNG-Bildern hinbekommt, aber ich bin sicher, es geht z.B. mit Gimp2.

    Kannst Du ja 'mal versuchen.

    VG Carsten

  3. #3
    sparx ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.12.2009
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich habe das mittlerweile schon anders gelöst.

    Ich nutze nun GDI+ um ein BMP Bild zu Zeichnen und darauf dann Kreise oder Kästchen zu zeichnen.

    Der Code sieht folgendermaßen aus:

    Code:
    void OnPaint()
    {
     CPaintDC dc(this); // device context for painting
     
     Graphics    graphics(dc);
     Gdiplus::SolidBrush blackbrush(Color(0, 0, 0));
     Gdiplus::PointF     pointF(10.0f, 395.0f);
     Gdiplus::Pen        yellowPen( Color::Yellow,3.0f );
     //Bild zeichnen
     Image image(image.bmp);
     //Kasten zeichnen
     graphics.DrawImage(&image, 5, 5);
     graphics.FillRectangle(blackbrush,Gdiplus::Rect(71,313,28,22));
    }
    Mit PNG habe ich nicht ausprobiert.

    Danke für deine Antwort.

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 27.04.2011, 12:20
  2. Antworten: 9
    Letzter Beitrag: 02.12.2010, 15:26
  3. externe Bilder in Flex-Runtime anzeigen
    Von rostiger Nagel im Forum HMI
    Antworten: 4
    Letzter Beitrag: 04.12.2009, 09:33
  4. WinCC Flexible Rechteck transparent
    Von merlin im Forum HMI
    Antworten: 4
    Letzter Beitrag: 19.08.2009, 21:47
  5. Antworten: 5
    Letzter Beitrag: 06.11.2006, 13:46

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •