Layered Window Problem



  • so, jetzt habe ich statt WS_POPUP WS_OVERLAPPEDWINDOW benutzt.

    aber jetzt ist das Fenster zwar sichtbar, aber es hat wieder einen Rahmen und so.

    sry, dass ich hier nerve, aber irgendwie muss ich das ja mal lernen.

    thx.



  • 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