怎样实现拖动鼠标位图跟着变大 最好有个例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我现在知道了大体的思路:先是WM_LMOUSEDOWN, 再是WM_MOUSEONOVE , WM_LMOUSEUP 在WN_MOUSEDOWN先捕获鼠标,(怎么获得鼠标的位置?)再在WM_MOUSEMOVE处理按下的时候的 (调用StretchBlt) 鼠标移动消息,最后在WM_LMOUSEUP中释放鼠标(怎么释放?).是这么做吗? 你是想在拖动图象边界线时将其放大吗?移动鼠标放大好象不太合理。你需要处理WM_LBUTTONDOWN,WM_LBUTTONUP, WM_MOUSEMOVE,这三个消息做一下处理。WM_LBUTTONDOWN:里设置鼠标左键按下的标志。WM_LBUTTONUP:将鼠标左键按下标志设为falseWM_MOUSEMOVE:这里如果鼠标左键按下,且判断鼠标是否处到图象边框上,若在,则调整边框,从而调整图象的大小。 大家看看这样可以吗?感觉刷新太慢了,老半天才有点效果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);} 在,OnLButtonDown的时候,SetCapture()一下。 首先不应该是去缩放位图..而是应该去缩放视图OnDraw里面的代码跟选入位图一样../在鼠标的Down move up的三个函数里面主要记录鼠标的偏移值..通过这个偏移值..利用下面这些函数SetMapmode SetViewprot这些设置视图尺寸的函数..动态的改变视图尺寸..这样来达到图片缩放.. 求教:关于CxImage类库结构问题 编译时出现一个错误,求解决!!! vc++CListCtrl控件 怎么添加状态栏 如何得到文档类的指针 Windows中怎么用Firewall命令把12345端口加入Firewall的Exception port当中啊? Radio问题 请问这是啥错误咋改,谢谢 用VC编辑程序,从上个大括号用什么快捷键可以定位到相对应的下个大括号 MFC能调用mediainfo的dll吗? 怎么用MSDN?(送分) 请问如何引用另一个类的成员变量 关于在MFC中作图闪烁的问题 大家帮忙看一下 谢谢
先是WM_LMOUSEDOWN, 再是WM_MOUSEONOVE , WM_LMOUSEUP
在WN_MOUSEDOWN先捕获鼠标,(怎么获得鼠标的位置?)再在WM_MOUSEMOVE处理按下的时候的 (调用StretchBlt)
鼠标移动消息,最后在WM_LMOUSEUP中释放鼠标(怎么释放?).
是这么做吗?
你需要处理WM_LBUTTONDOWN,WM_LBUTTONUP, WM_MOUSEMOVE,这三个消息做一下处理。
WM_LBUTTONDOWN:里设置鼠标左键按下的标志。
WM_LBUTTONUP:将鼠标左键按下标志设为false
WM_MOUSEMOVE:这里如果鼠标左键按下,且判断鼠标是否处到图象边框上,若在,则调整边框,从而调整图象的大小。
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);
}
OnDraw里面的代码跟选入位图一样../
在鼠标的Down move up的三个函数里面主要记录鼠标的偏移值..
通过这个偏移值..利用下面这些函数
SetMapmode SetViewprot这些设置视图尺寸的函数..动态的改变视图尺寸..
这样来达到图片缩放..