MFC 用vc++6.0软件 怎么实现鼠标拖动?!!求具体代码和过程

如图,用vc++的MFC制作了一个这样的滑块机构,现在已经实现了这样的功能,按下键盘A/D两个键,上面的滑块会在轨道上滑动,并相应的拖动了下面的滑块。现在的问题是这样的:... 如图,用vc++的MFC制作了一个这样的滑块机构,现在已经实现了这样的功能,按下键盘A/D两个键,上面的滑块会在轨道上滑动,并相应的拖动了下面的滑块。现在的问题是这样的:想给上面的滑块添加用鼠标可以拖拉其在轨道上滑动(不能超出轨道的范围)的效果,请问大神们,如何实现,怎么实现,具体是怎样的??可以帮我解答吗,不胜感激!!下面是键盘控制的效果图,现在想要鼠标控制的效果,怎么实现啊??
(需要用鼠标左键按下选择主动块之后拖动,鼠标向左拖动,则主动块向左运动;鼠标向右拖动,则主动块向右运动。)
展开
 我来答
空雪梦见
推荐于2017-09-05 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1179万
展开全部
两个关键消息:WM_LBUTTONDOWN和WM_LBUTTONUP,可以知道鼠标什么时候按下什么时候松开。
然后,WM_MOUSEMOVE,可以知道鼠标在移动。
按下(WM_LBUTTONDOWN)的时候判断是不是在主动滑块内,如果是,记下鼠标的位置和滑块的位置,并将一个成员变量(标志位)设置为true,
在WM_MOUSEMOVE里检查标志位,如果是true,那么将当前鼠标的位置减去按下时鼠标的位置可以知道鼠标的移动距离,把按下时滑块的位置加上这个移动距离就知道滑块应该被拖到什么位置上。
然后松开的时候把标志位设置为false即可。
追问
我知道要用这三个响应信息,但是不会用。譬如我不会怎么设置你说的标志位之类的。
能不能给我详细的代码和过程?!
追答
所谓“标志位”,你理解成一个bool型的成员变量,就OK了。
消息响应,用类向导很容易添加响应函数。记得添加到你保存状态信息的那个类里面就可以了(简单说就是和响应按键操作同一个类)
所谓保存鼠标按下时候的鼠标位置和滑块位置,也就是添加成员变量,然后对它赋值。
这种代码又不是控制台程序的一个小函数或者和其他功能模块完全不相关的独立代码块,没办法给你的。
大鹏2019888
2014-01-27 · 超过21用户采纳过TA的回答
知道答主
回答量:152
采纳率:100%
帮助的人:53.4万
展开全部
描述不太明确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式