Bild transparent anzeigen, TransparentBlt() geht nicht.
-
Hallo, ich bin noch Anfänger und habe folgendes Problem:
Ich möchte ein Bild über einem anderen anzeigen, und weil es nicht rechteckig sein soll sollte es an bestimmten stellen transparent sein.
Dazu wollte ich TransparentBlt() verwenden, aber der Compiler sagt
error: 'TransparentBlt' was not declared in this scope
obwohl ich windows.h included habe und da wingdi.h mit drin sein müssteich danke schon mal für eventuelle Hilfe!
-
Was hast Du für ein System (VC6)?
Ist WINVER richtig gesetzt?
-
ich benutze code::blocks und das programm sollte auf windows xp (und höher) laufen.
ich hab einfach mal ganz am anfang
#define WINVER 0x0500 geschrieben, aber dann kommt der error
"undefined reference to `TransparentBlt@44' "was mache ich falsch?
-
Schneller Blick in <wingdi.h> unter Code::Blocks (10.05):
#if (WINVER >= 0x0410) WINGDIAPI BOOL WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION); WINGDIAPI BOOL WINAPI GradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG); WINGDIAPI BOOL WINAPI TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT); #endif
Du musst WINVER passend definieren, bevor du <windows.h> inkludierst.
-
Sorry, gerade noch mal die Antworten durchgesehen (ich hatte die ganze Zeit _WIN32_WINNT statt WINVER gelesen
).
Du müsstest Erfolg haben, wenn du libmsimg32.a den Linkereinstellungen hinzufügst.