如何用vc++给MFC制作的CAD滑块机构添加鼠标拖动功能??求解答>< “键盘控制的效果图" 会做了“鼠标控制”应该不能:1. “鼠标控制” 转换为 ”键盘控制“ (调 对应的 ONKey)2. 重写 “鼠标控制” , 这样 就是 2 套 了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 啊啊 具体是怎么样的 用mousemove吗?还是用其他的消息函数? 1。 滑块 要不要 选择 ?2. 是不是 左键 按下 才 拖动 ?主要 响应 mousemove 是左键按下才拖动,只是上面的滑块可以滑动,下面的是被动的,哦哦是mousemove,那具体的那个代码是怎么样的可以告诉我吗?我是初学者,有很多不懂,谢谢 “上面的滑块可以滑动”这个滑块 是 你 画上去 的 吧?1。 滑块 要不要 选择 ?这个 问题 要 先 解决即 鼠标 移到 这个 画 块 上 ,检测 鼠标 是不是 在 这个 滑块 的 Rect 内 如果是 检测 鼠标左键 是不是 按下,如果是 就要 移动 这个 滑块, 图 要 重画。 void OnMouseMove(UINT nFlags,CPoint point){if(画块.PtInRect(point){ if(nFlags & MK_LBUTTON) { }} 你好 根据你说的 我现在写了一点mousemove函数了,有一些错误,我修改了一些,现在还有一条改不了,是什么原因?error C2228: left of '.PtInRect' must have class/struct/union type 你那个 滑块 怎么 定义 在 DOC 里, 即使这样 也 不能 GetDocment 就是 滑块 了 !要 从 doc 里 取 滑块 才 行。简单点 定义 在 CHuaKaiView 中 就 可以了 。CRect m_ZhuHuakuai;// 主滑块初始化 时 在 构造函数 中;m_ZhuHuakuai.left=m_ZhuHuakuai.top=....void CHuakuaiView::OnMouseMove(UINT nFlags,CPoint point){static CPoint ptLast(0); if(m_ZhuHuakuai.PtInRect(point) { if(nFlags & MK_LBUTTON) { m_ZhuHuakuai.OffsetRect(point.x-ptLast.x,point.y-ptLast.y); Invalidate();// 重绘 } } else { ptLast=point; } CView::OnMouseMove();} 1: 你这是一个平面问动画仿真问题2:OnMousePress判断鼠标是否在水平滑块矩形框内,如果在,进入拖动模式,并记录当前XY坐标3:OnDragged或者OnMouseMove需每次判断是不是在水平滑块矩形框内,不在return,但保持拖动模式,在的话,用当前坐标点和之前位置坐标点比较X插值,改变水平滑块的位置,同时计算得到竖直方向滑块的位置;重绘,记录当前XY坐标4:鼠标松开,退出拖动模式 怎样把消息转换成CPoint? MFC VS2005环境下如何添加DataGrid vc控件不能够修改 关于线程处理函数 OpenGL运行出错 请问,打印文本到一张A4纸上,当打印机不同时,打印出来的位置总是相同的,这要如何实现? 请问我的函数应该如何声明 请问几个初级问题 【自绘按钮,怎么设置不可用按钮】 神了,救救我吧!!!!!!!!!!!!! 关于驱动程序的一个问题 MFC 拖放文件时鼠标的图标
2. 是不是 左键 按下 才 拖动 ?
主要 响应 mousemove
这个滑块 是 你 画上去 的 吧?
1。 滑块 要不要 选择 ?
这个 问题 要 先 解决
即 鼠标 移到 这个 画 块 上 ,检测 鼠标 是不是 在 这个 滑块 的 Rect 内
如果是
检测 鼠标左键 是不是 按下,
如果是
就要 移动 这个 滑块, 图 要 重画。
{
if(画块.PtInRect(point)
{
if(nFlags & MK_LBUTTON)
{ }
}
要 从 doc 里 取 滑块 才 行。简单点 定义 在 CHuaKaiView 中 就 可以了 。
CRect m_ZhuHuakuai;// 主滑块
初始化 时 在 构造函数 中;
m_ZhuHuakuai.left=
m_ZhuHuakuai.top=
....void CHuakuaiView::OnMouseMove(UINT nFlags,CPoint point)
{
static CPoint ptLast(0);
if(m_ZhuHuakuai.PtInRect(point)
{
if(nFlags & MK_LBUTTON)
{
m_ZhuHuakuai.OffsetRect(point.x-ptLast.x,point.y-ptLast.y);
Invalidate();// 重绘
}
}
else
{
ptLast=point;
}
CView::OnMouseMove();
}
2:OnMousePress判断鼠标是否在水平滑块矩形框内,如果在,进入拖动模式,并记录当前XY坐标
3:OnDragged或者OnMouseMove需每次判断是不是在水平滑块矩形框内,不在return,但保持拖动模式,在的话,用当前坐标点和之前位置坐标点比较X插值,改变水平滑块的位置,同时计算得到竖直方向滑块的位置;重绘,记录当前XY坐标
4:鼠标松开,退出拖动模式