transparenter Dialog und Desktop



  • Hallo,

    ich habe eine dialogfeldbasierte Anwendung, die transparent (also durchsichtig) über den ganzen Bildschirm angezeigt werden soll.

    Ich habe einfach im OnInitDialog folgendes reingeschrieben:

    ModifyStyleEx(0, WS_EX_TRANSPARENT);
    CRect desktop;
    GetDesktopWindow()->GetWindowRect(&desktop);
    MoveWindow(desktop);
    

    Der Dialog ist zwar transparent, jedoch ist die Taskleiste komplett grau (bis auf die TrayIcons). Die TrayIcons werden wohl neugezeichnet, der Rest jedoch nicht.

    Sieht komisch aus.
    OS: NT

    Kann mir jemand sagen, warum und weshalb?
    Bzw. was ich besser machen kann?

    Danke im voraus...



  • Servus,

    Guckst du -> http://www.codeproject.com/dialog/transparentdialog.asp

    Ich glaube das hast du gesucht...

    *winke*
    Hellsgore



  • Was genau willst du denn machen ? Du willst das deine Anwendung Unsichbar ist und den Desktop auch oder wie ?



  • @Hellsgore: Danke für den Link.
    Hatte ich auch schon gesehen, aber der funzt net so ganz wie ich möchte.... 😞
    Der Dialog scheint nicht nur transparent, sondern er ist es wirklich (damit meine ich, dass wenn Du irgendwo klickst, das dann auch das Fenster aktiviert wird).

    Was ich genau haben will ist folgendes:
    Der Anwender soll einen Punkt auf dem Bildschirm fixieren können. Sprich: Der User hat bspw. ein Programm auf dem ein Button ist. Mein Programm will vom User die Position des Buttons wissen. Dazu soll ein unsichtbarer Dialog über dem aktuellen Bildschirm gelegt werden, der oben links die aktuelle Position anzeigt und sonst nix macht. Wenn nun der Anwender mit der linken Maustaste auf den Button drückt (tut er ja nicht, weil mein Dialog darüberliegt), dann soll sich der Dialog wieder schliessen.
    Ich hoffe Ihr wisst jetzt, was ich meine... 🙄 🙄 🙄
    Und das geht halt nicht mit dem Codebeispiel Hellsgore... 😞



  • würd mich auch mal interessieren wie das von statten geht. 😉



  • Servus,

    noch eine Idee von mir. Du kannst doch einfach die MousePos von deinem Cursor abfangen. Dann weisst du ja auch an welcher Stelle sich dieser Button befindet. Wenn der User allerdings dann das Programm verschiebt oder verkleinert ist die Pos futsch. Das müsstest du dann auch berechnen wie er sich wann verhält oder du holst dir dann mit FindWindow das handle vom Fenster und bestimmst darüber die Pos dieses Fensters um dann die Pos des Buttons wieder zu berechnen.

    Allerdings verstehe ich jetzt nicht, wofür du das brauchst?

    *winke*
    Hellsgore



  • löschen


Anmelden zum Antworten