Form an Bildschirmrand andocken.



  • Hallo! Ich möchte meine Form an Bildschirmrand Andocken, also so ähnlich wie manche Instant Messenger Programme ihre Kontaktliste andocken.
    Wie geht das?



  • Hallo

    Vermutlich solltest du da lieber im WinAPI-Forum nachfragen (aber erst FAQ und Suchfunktion dort benutztn!)

    bis bald
    akari



  • Kommt jetzt drauf an welche Version du verwendest
    bei 2007 und 2009 zb. gibt es die Form Eigenschaften
    ScreenSnap und SnapBuffer die das machen was du möchtest.



  • Ne diese eigenschafften gibt es bei mir leider nicht 😞



  • hm ok dann ist wohl Handarbeit angesagt:

    http://delphi.about.com/od/formsdialogs/a/frm_dock_screen.htm



  • hmm, von Delphi habe ich irgendwie nicht so viel Ahnung. Ich glaube aber, dass ich es in C++ selber hinbekomme. Also das Fenster an den Bildschirmrand anzudocken, ist ja kein Problemm, aber wie ich jetzt den Bildschirm für andere Fenster "begrenze" weiss ich gerade nicht. Also,z.B. bei der angedockter icq-kontaktliste ist das ja so, dass für andere Fenster nicht mehr der ganze Bildschirm verfügbar ist.

    ich glaube ich mache das mal mit:

    BOOL WINAPI SystemParametersInfo(
    __in UINT uiAction,
    __in UINT uiParam,
    __inout PVOID pvParam,
    __in UINT fWinIni
    );

    für uiAction SPI_SETWORKAREA, und pvParam wird ein zeiger auf eine RECT struktur sein
    ich probiere das mal



  • So:

    RECT Area;
            Area.left = 0;
            Area.right = Screen->Width-100;
            Area.top = 0;
            Area.bottom = Screen->Height;
            SystemParametersInfo(SPI_SETWORKAREA,0,&Area,SPIF_SENDCHANGE);
    


  • wegen dem Area.top = 0; gibt es aber noch ein problemm (Maximierte fenster verschwinden hinter der taskleiste)
    da muss man auf die größe der taskleiste irgendwie kommen



  • Hallo,

    gabs da mal nicht sowas wie WorkArea - kann mich auch täuschen?

    //Edit: Gefunden 😃 Screen->WorkAreaHeight

    mfg, Micha


Log in to reply