Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Semi-Transparente Rechtecke

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.11.2010, 14:12 Uhr
~Arathmar
Gast


Hallo Leute,

ich möchte auf meinem Screen ein halb-transparentes Rechteck anzeigen.

Normale Rechtecke habe ich über die Funktion ::Rectangle (dc, x, y, width, height) aufgerufen.
Wie kann ich diese Rechtecke aber transparent machen?

Die AlphaBlend-Funktion liefert mit bei dem Aufruf (dc_new, x, y, width, height, dc, x, y, width, height, blendfunction) TRUE zurück, aber ich seh überhaupt nix auf dem Bildschirm. Das liegt doch bestimmt an dem neuen Device Context, oder nicht?

Ich hoffe auf eure Unterstützung

Grüße

Arathmar
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.11.2010, 19:20 Uhr
TOSHMAX



Ich gehe mal davon aus, dass du die Winapi Funktion AlphaBlend meinst!

Dass du nichts siehst kann mehrere Gründe haben:
1. Du hast die Transparenz in blendfunction zu niedrig eingestellt.
2. Du hast die DC's vertauscht. So wie du es geschrieben hast, wird in "dc_new" gezeichnet und von "dc" kopiert.
3. Die Koordinaten sind falsch, d. h. entweder kann er an der Position nicht in dc_new zeichnen oder von dc lesen.

Versuch mal, ob du es jetzt schaffst.
Ansonsten poste bitte einen größeren Ausschnitt des Codes, damit man den Fehler leichter finden kann.

Dieser Post wurde am 10.11.2010 um 19:20 Uhr von TOSHMAX editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.11.2010, 10:44 Uhr
~Arathmar
Gast


Ja, es handelt sich um die Winapi-Funktion.

Das Problem lag wohl darin, dass ich mein Rechteck zuerst in eine HBitmap legen musste. Nachdem dieses Bitmap dem dc_new zugewiesen wurde, hatte ich nach dem AlphaBlend auch mein korrektes Ergebnis.

Problem also gelöst :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.11.2010, 12:51 Uhr
~global
Gast


hi, naja... eigentlich lag es daran das du eine funktion benutzt hast die keine rechtecke zeichnet, sondern einen bereich aus einem DC in den anderen DC kopiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: