MFC任意位置實現視窗拖動

 
  如果應用程式自己繪製的介面沒有標題欄
,那我們怎麼來拖動介面呢?

    當滑鼠在視窗內移動,點選或者釋放時都會產生WM_NCHITTEST訊息,響應函式OnNcHitTest會返回一個列舉值,mfc會根據這個列舉值進行相應的處理。 當返回值為HTCAPTION時,MFC會認為此時滑鼠位於標題欄上,因而當滑鼠按下並移動時就會執行拖動操作。我們需要做的就是響應這個訊息,然後根據自己的需要,返回HTCAPTION引數即可!如下圖所示:

    

這個程式碼實現的功能就是隻要滑鼠的點選點位於客戶端內,就返回一個HTCAPTION引數,然後系統就會以為你在拖到標題欄,從而實現介面的拖動。 當然我們可以根據得到的point與客戶端的座標的關係來達到各種拖動效果,比如: