Bitmap topmost setzen, damit Controls nicht durchscheinen



  • Für einen Verarbeitungsstatus möchte ich meine Controls, während der
    Thread arbeitet, gerne ausblenden, bzw. ein Bitmap darüber legen
    (sowas wie "achtung arbeitet noch...").

    Problem an der Sache ist nur, dass man durch das Bitmap die Controls durch-
    scheinen sieht und diese sogar noch anklicken kann 😞

    Das Anklicken kann ich ja noch sperren, theoretisch auch die Controls unsichtbar
    machen, aber schöner wäre einfach das Bitmap überlagernd anzuzeigen und dann
    mit SW_Hide bzw. Show ein und ausblenden zu können.

    Kann mir jemand sagen wie ich das Bitmap topmost mache?


  • Mod

    Warum machst Du nicht einfach myCtrl.ShowWindow(SW_HIDE)?
    Aber selbst dnan müsstest Du auch ein EnableWindow(FALSE) machen.
    Sonst kann man manche Controls auch noch mit der Tastatur bedienen.



  • So habe ich es inzwischen dann auch gelöst. Das mit dem Bitmap ist aber
    zumindest optisch eine schöne Sache. Kann man es denn topmost verankern?


  • Mod

    Shoggy schrieb:

    zumindest optisch eine schöne Sache. Kann man es denn topmost verankern?

    Du hast Controls in Deinem Fenster. Keine Bitmaps!
    Denk mal drüber nach.

    Wieso ist das optisch schöner als Controls zu verstecken?
    Deine Contrls wären ja sogar noch bedienbar...



  • Nein nein, nicht missverstehen an dieser Stelle. Natürlich disable ich den
    Dialog (und zusätzlich sogar noch einen Button), aber dennoch wäre so eine
    Art Splashscreen nett, der dem Anwender zusätzlich sagen würde "da tut noch was...".


  • Mod

    Dann musst Du das in ein eigenes Fenster packen. Es gibt keine losgelösten optischen Elemente wie eine Bitmap in Windows. Alles ist ein Fenster!
    Daher der Name 😉


Anmelden zum Antworten