Fenster an Bildschirmrand docken



  • Martin Richter schrieb:

    Sample Programm mit dem hier veröffentlichen Code zeigt dieses Verhalten nicht.

    richtig, bei mir läufts einwandfrei, wie bei winamp etc... weiß nicht wo das problem ist...



  • Ein Problem gibt es aber:
    wenn das Fesnter angedockt ist und man es wieder verschieben will, muss man schnell mit der maus das Fenster wegziehen. Wenn man aber versuhct das fesnter langsam zu verschieben geht das eben nicht, da bewegt man nur den zeiger.

    Bei winamp ist das ja nicht der fall, da kann man die fenste auch langsam verschieben,



  • Ist zwar ein altes Topic, aber...du hast Recht. Schade, sowas wäre sonst
    vlt. was für die FAQ oder @Mods?



  • Z.B. dieser Codeabschnitt:

    if(((RECT*)lParam)->left < 10) 
    {
                    ((RECT*)lParam)->right = ((RECT*)lParam)->right - ((RECT*)lParam)->left;
                    ((RECT*)lParam)->left = 0;
    }
    

    das bedeutet Eigentlich, dass, wenn das Fenster links angedockt ist, es nicht mehr bewegt werden kann oder?


  • Mod

    Das Problem ist, dass das Fenster immer wieder zurückgedockt wird.
    Man müsste also beim ersten WM_MOVEING die Cursorposition vermerken und das Fenster entdocken, wenn die Distanz, die die Maus bewegt wurde, größer als der Dockbereich wird.

    Man kann dazu die Nachricht WM_ENTERSIZEMOVE verwenden und die Mausposition speichern und dann mit der Position vergleichen, die man bei WM_MOVING hat.


Anmelden zum Antworten