Problem beim "Teildurchsichtiger Form"



  • Hallo,

    ich habe ein Problem bei dem FAQ Eintrag "Teildurchsichtige Form". Da und noch in vielen anderen Einträgen (Suchfunktion) steht folgender Text:

    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
    SetLayeredWindowAttributes(Handle, 0, 200 /* 0 - 255 */, LWA_ALPHA);
    

    Brauche ich für diesen Code irgendwas besonderes? Eine Include Datei? Einen besseren BCB?
    Auf jeden Fall bekomme ich, wenn ich die zwei Zeilen unter "TForm1::TForm1(TComponent* Owner): TForm(Owner)" eintrage, Compilerfehler bei WS_EX_LAYERED, SetLayeredWindowAttributes und LWA_ALPHA.

    Mach ich da irgendwas falsch?



  • Hi,
    machs doch einfach so:

    AlphaBlendValue = StrToInt(Edit1->Text);
        if(AlphaBlend == false)
          AlphaBlend = true;
    


  • Toadie: Keine Ahnung welche Version des BCB du hast, bei meiner jedenfalls gibts ein AlphaBlendValue und auch kein AlphaBlend.

    Andist: Setz den Cursor auf SetLayeredWIndowAttributes und drück F1... Theoretisch müsstest du dann in die Win SDK-Hilfe kommen. Klickst du da auf QuickInfo, müsste dir der einzubindende Header bekannt gegeben werden.

    Beachte dass diese API-Calls nur Windowsversionen > NT5 verfügbar sind (steht auch im thread).

    -junix



  • BCB 6 Enterprise

    Da ist das als Eigenschaft einer Form intigriert!
    Kenn sonst nur die 4er Version, kann mich aber nicht erinnern obs da auch so ging 😕



  • Ah - Danke für die Hilfe. Ich werds mal versuchen.



  • Ich denke es geht bei meinem BCB nicht. (BCB1)
    Denn er kennt auch kein AlphaBlend und kein AlphaBlendValue.

    Sobald ich die Hilfe aufrufe (wie Junix sagt) werden diese Wörter gar nicht angezeigt. Das heißt, das mein BCB die gar nicht erfasst hat. Aber vielleicht finde ich ja ein API im Internet oder sowas ähnliches, welches ich includieren kann.

    Ich habe Windows ME. Ich denke aber trotzdem, dass mein BCB diese Funktion noch nicht in der Hilfe erfasst hat, und dass ich deshalb auch nicht nachsehen kann, was ich includieren muss.



  • Ja, vermutlich ist das SDK das in deinem BCB installiert ist (BCB1) schlicht zu alt um diese Funktion zu kennen.

    -junix


Anmelden zum Antworten