MFC实现鼠标中键滑动WM_MOUSEWHEEL响应,使得图形缩放

来源:互联网 发布:网络打鱼作弊软件 编辑:程序博客网 时间:2024/06/10 05:53

MFC实现鼠标中键滑动WM_MOUSEWHEEL响应,使得图形缩放

已经实现,没有问题

CRenderView基类是CView,实现显示操作三维模型。

实现鼠标滚轮缩放简单步骤如下:

(1)响应视图类的WM_MOUSEWHEEL消息

(2)在响应函数里面实现:

      有滚动引起的缩放比例变化;

      刷新视图区域,图形缩放显示;

     设置滑竿位置,刷新滑竿所在类的滑竿显示位置;

//滚动鼠标滚轮实现模型缩放,z轴上放大或者缩小BOOL CRenderView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) {// TODO: Add your message handler code here and/or call default//AfxMessageBox(" 鼠标滚轮滑动触发");    m_zScaling = m_zScaling +0.01*zDelta/120;//CFormCommandView里 设置滑竿范围是pos=1-100,放大倍数是pos/50=0.02-2//为了是滑动缩放和滑竿缩放一致,所以加入以下两条if语句if(m_zScaling<=1/50)m_zScaling=0.02;if(m_zScaling>=100/50)m_zScaling=2;CToolApp *pApp = (CToolApp *)AfxGetApp();CMainFrame *pFrame = (CMainFrame *)pApp->m_pMainWnd;CFormCommandView *pView = (CFormCommandView *)pFrame->m_wndSplitter.GetPane(0,0);(pView->m_SliderScaleZ).SetPos(m_zScaling*50);InvalidateRect(NULL,FALSE);//刷新绘图pView->InvalidateRect(NULL,FALSE); //刷新让滑竿更新滑动位置return CView::OnMouseWheel(nFlags, zDelta, pt);}

原创粉丝点击