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üsste

    ich danke schon mal für eventuelle Hilfe!


  • Mod

    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.


Anmelden zum Antworten