Layered Window Problem



  • Die MessageLoop sorgt ja gerade dafür das die WindowProc überhaupt aufgerufen wird 😉
    Schau dir mal die doku zu DispatchMessage() an!



  • ja danke.
    jetzt habe ich es auch verstanden:
    das ist dafür, dass das Programm nicht direkt beendet wird, sobald er mit dem Erstellen des Fensters fertig ist. es soll erst beendet werden, wenn die Quit-Message da ist.

    yo, aber das Layered Window, um das es hier geht, geht immer noch verkehrt. Trotz WS_EX_LAYERED. kann mir einer mal sagen warum dass so ist? in der WndProc wird bei WM_CREATE doch das LayeredindowAttributes-viech aufgerufen. dass soll ja auch so sein, aber verstehe ich nicht, was dort verkehrt ist.
    Danke.



  • merker schrieb:

    Guck mal nach, welchen Fenster-Style Du sonst immer für ein Hauptfenster benutzt hast.

    Funktioniert WS_EX_LAYERED nicht zusammen mit WS_POPUP ?



  • geeky schrieb:

    merker schrieb:

    Guck mal nach, welchen Fenster-Style Du sonst immer für ein Hauptfenster benutzt hast.

    Funktioniert WS_EX_LAYERED nicht zusammen mit WS_POPUP ?

    was denn dann???
    ich hab schon viel versucht, aber irgendwie will das nicht funzen...

    danke danke.



  • geeky schrieb:

    Funktioniert WS_EX_LAYERED nicht zusammen mit WS_POPUP ?

    Doch. Perfekt sogar. War wohl bischen kryptisch mein Beitrag. Sorry.

    Script-Styler schrieb:

    aber irgendwie will das nicht funzen...

    Es "funzt" perfekt. Hast Du ja gesehen bei WS_OVERLAPPEDWINDOW. Offenbar stimmt was mit der Grösse nicht.
    Wie gross ist ein WS_POPUP mit CW_USEDEFAULT ? Setze da mal Zahlen ein.
    🙂



  • lol 😃



  • Danke danke mann!

    Aber mein Problem ist nun, dass ich ein Bitmap mit lilanem Hintergrund RGB(255,0,255) einblende.
    Aber wie bekomme ich diese Farbe nun transparent???

    danke.



  • Dann solltest du SetLayeredWindowAttributes() nicht mit Alpha-Wert benutzen, sondern mit LWA_COLORKEY und crKey auf dein lila setzen.
    Dann brauchst du auch kein TransparentBlt().
    Dein Fenster wird dann an allen Stellen wo eigentlich lila ist vollkommen transparent.



  • SetLayeredWindowAttributes(hwnd, RGB(255,0,255), 0, LWA_COLORKEY);
    

    Aber wie bekomme ich es hin, dass unten in der Taskleiste kein!!! Programm mehr angezeigt wird???
    gibt es da nicht so ein ex-style dafür??

    thx.



  • Ein ToolWindow (WS_EX_TOOLWINDOW) hat glaube ich keinen Taskbar-Button.



  • Stimmt. WS_EX_TOOLWINDOW erzeugt keinen Taskbar-Button.
    Allerdings lässt sich zusammen mit den anderen ExStyles dann kein MSDN-Designer-Richtlinien-Wettbewerb mehr gewinnen.
    🙂


Anmelden zum Antworten