最好有个例子

解决方案 »

  1.   

    我现在知道了大体的思路:
    先是WM_LMOUSEDOWN,   再是WM_MOUSEONOVE   ,   WM_LMOUSEUP   
    在WN_MOUSEDOWN先捕获鼠标,(怎么获得鼠标的位置?)再在WM_MOUSEMOVE处理按下的时候的  (调用StretchBlt) 
    鼠标移动消息,最后在WM_LMOUSEUP中释放鼠标(怎么释放?).
    是这么做吗?
      

  2.   

    你是想在拖动图象边界线时将其放大吗?移动鼠标放大好象不太合理。
    你需要处理WM_LBUTTONDOWN,WM_LBUTTONUP, WM_MOUSEMOVE,这三个消息做一下处理。
    WM_LBUTTONDOWN:里设置鼠标左键按下的标志。
    WM_LBUTTONUP:将鼠标左键按下标志设为false
    WM_MOUSEMOVE:这里如果鼠标左键按下,且判断鼠标是否处到图象边框上,若在,则调整边框,从而调整图象的大小。
      

  3.   

    大家看看这样可以吗?感觉刷新太慢了,老半天才有点效果
    void CNetWatcherViewerView::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    MouseDown=TRUE;
    m_downpointx=point.x;
    m_downpointy=point.y;
    CScrollView::OnLButtonDown(nFlags, point);
    }void CNetWatcherViewerView::OnMouseMove(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    m_movepointx=point.x;
    m_movepointy=point.y;
    m_addx=m_movepointx-m_downpointx;
    m_addy=m_movepointy-m_downpointy;
    CScrollView::OnMouseMove(nFlags, point);
    }void CNetWatcherViewerView::OnLButtonUp(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    MouseDown=FALSE;
    m_uppointx=point.x;
    m_uppointy=point.y;
    CScrollView::OnLButtonUp(nFlags, point);
    }
      

  4.   

    在,OnLButtonDown的时候,SetCapture()一下。
      

  5.   

    首先不应该是去缩放位图..而是应该去缩放视图
    OnDraw里面的代码跟选入位图一样../
    在鼠标的Down move up的三个函数里面主要记录鼠标的偏移值..
    通过这个偏移值..利用下面这些函数
    SetMapmode SetViewprot这些设置视图尺寸的函数..动态的改变视图尺寸..
    这样来达到图片缩放..