mfc下滑鼠拖動畫面使檢視移動的實現方法,類似瀏覽PDF時用手型滑鼠移動檢視的效果

NO IMAGE

1.在滑鼠按下事件中記錄當前滑鼠位置和滾動條當前位置

2.在滑鼠移動事件中動態修改滾動條位置,並使用雙緩衝貼圖的方法實現無閃爍重新整理畫面

具體程式碼如下

 

void OnRButtonDown(UINT nFlags, CPoint point)
{
//這兩個是全域性變數,型別是Cpoint
m_oldMoveMapPoint=point;//當前滑鼠點下時記錄的滑鼠位置
m_oldScrollPoint=GetScrollPosition();//滑鼠點下時記錄的滾動條位置
}
void OnMouseMove(UINT nFlags, CPoint point)
{
int Hlength= point.x-m_oldMoveMapPoint.x;
    int Vlength= point.y-m_oldMoveMapPoint.y;
    SetScrollPos(SB_VERT,m_oldScrollPoint.y-Vlength,1);
    SetScrollPos(SB_HORZ,m_oldScrollPoint.x-Hlength,1);
//重繪畫布上的內容實現平滑移動
    CDC *pDC=GetDC();
    OnDraw(pDC);
}