閱讀對象:入門級,老鳥漂過
大家都知道QQ有一個自動停靠功能,即“上、左、右”,當你把窗體拖到螢幕邊緣,然後移開滑鼠它會自動縮放,然後隻顯示一小小點出來,我們仔細觀察會發現其實它隻露3像素左右的邊緣,當你滑鼠移上去它又會伸出來,介于普通入門級學者要求艾偉就在這裡給需要的朋友們分享分享我是怎麼實作的,代碼很少,效果如下:

先在目前類裡弄幾個變量,友善邏輯判斷:
QQ_MODE(用于記錄窗體目前的停靠狀态,即0為不停靠,1為X軸,2為Y軸,3為頂部),QQ_T(窗體縮放時顯示出來的邊緣大小),QQ_XY(滑鼠坐标與窗體邊緣多少像素時為可見區)
邏輯思考:如果滑鼠左鍵在目前窗體按下時,無論窗體位置在哪,那麼此窗體一定是顯示的,并且可能為拖動狀态,即不停靠;如果滑鼠移到到視窗内或到移動到邊緣差為QQ_XY内區域時窗體可見;當滑鼠離開窗體時則判斷是否滿足伸縮的條件,即“上、左、右”,其中“上”為優先級;
再拖入窗體一個“timer”控件,關鍵的邏輯判斷代碼如下: