如何实现可以用鼠标拖动的CScrollView(类似手形工具)

来源:百度知道 编辑:UC知道 时间:2024/05/03 00:33:47
可以用鼠标直接在VIEW上拖动,然后画面会做出相应位置的变化,就像foxit Reader 、ACDSEE的手形工具一样。

目前我是这样实现 可是只是拖动滚动条,如何实现请高手指教

//鼠标点击下 记下点击状态已经点击坐标
void CFPdfDocView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_Lbutton = TRUE;
m_pos.x = point.x;
m_pos.y = point.y;
CScrollView::OnLButtonDown(nFlags, point);
}

//鼠标弹起 将状态归0
void CFPdfDocView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_Lbutton = FALSE;
m_pos.x = 0;
m_pos.y = 0;
CScrollView::OnLButtonUp(nFlags, point);
}

//在按下左键的时候移动鼠标,计算鼠标移动的距离,进而设置SCROLL需要移动的位置(此处有问题,好像SCROLL和鼠标采用的坐标系不一样?)
void CFPdfDocView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(m_Lbutton)
{
CPoint Opt,Npt;
Opt = GetScrollPositio

呃,很专业的问题,那也需要专业的人员来解答了。我知道一个专门解决PDF问题的论坛,是福昕PDF的服务论坛。附上链接:http://bbs.fuxinsoftware.com.cn/index.php
你最好到上面去问问吧,我想会有你要的结果的。

既然坐标有问题,那就把坐标换掉咯,你试下把坐标全换为全屏坐标看看

唉,国内的论坛总是看到这种答案。自己解决了。
在国外论坛自己解决还是别人解决都会最终给一个解决的答案......