b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

【知识点】鼠标的X,和偏移值的区别

电脑杂谈  发布时间:2021-03-10 12:01:53  来源:网络整理

(1)目的描述:在MFC中重新实现鼠标事件功能,实现鼠标左键的拖动效果和滚轮的拖动效果。

([2)鼠标事件描述:

OnMouseMove响应鼠标移动事件

OnMouseWheel响应鼠标中键的滚动

([3)鼠标事件参数说明

afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint);

nFlags描述:指示是否按下了虚拟按钮,此参数可以是以下值的任意组合

按下CTRL键时的MK_CONTROL

按下鼠标左键时的MK_LBUTTON

MK_MBUTTON当按下鼠标中键(不按下滚动键)

按下鼠标右键时会显示MK_RBUTTON。

按下SHIFT时的MK_SHIFT。

点描述:鼠标的X,Y坐标:此坐标是鼠标基点相对于其所在窗口左上角的位置。它是屏幕像素上的相对位置,而不是绝对位置。

afx_msg BOOL OnMouseWheel(UINT nFlags,shortzDelta,CPointpt);

nFlags与上述相同

zDelta:当它大于0时,向上滚动,而当它小于0时,向下滚动。小于零的值表示向后旋转(朝向用户),而大于零的值表示向后旋转(远离用户)。在Windows下,通常向上滚动以缩小/向上移动窗口,反之亦然。

pt ::鼠标的X和Y坐标基于父窗口的左上角。指定光标的x和y坐标。这些坐标始终相对于窗口的左上角。

([4)鼠标拖动和缩放功能的实现

1.运动的效果得以实现

要实现移动,例如用鼠标左键拖动按钮/图片在窗口上移动,就可以达到附加的结果要求:将鼠标放在按钮/图片的A点上,移动后,鼠标点仍在点A

我们通过了

a。检查鼠标是否在按钮/图片上(确保不能将图标移动到任何地方),然后按向左按钮

b。记录鼠标的当前点和最后一点,计算两者的偏移值,然后使用此偏移值移动按钮/图片(MoveWindows)

(记录最后一点的方法可以使用静态变量。完成移动后,将当前点分配给静态变量)(具体实现可以灵活处理)

实现原理是:相对静态-鼠标和对象的相对位置保持不变,鼠标的偏移量就是对象的偏移量

2.实现缩放效果(以鼠标点为中心进行缩放)

要实现缩放,例如滑动中间轮以放大或缩小以放大按钮/图像,还需要满足其他要求:将鼠标放在按钮/图像的A点上,缩放后,鼠标点仍在点A上,并且缩放以鼠标点为中心

a。还要检测鼠标在按钮/图片上(确保您可以缩放按钮/图片的位置不是全部)

b。获取当前按钮/图片的高度和宽度(使用getClientRect)

c。获取相对于按钮/图片位置的当前pt点x,y,然后计算该位置相对于宽度和高度的比例

d。确定zDelta是正值还是负值以放大和缩小(按比例调整图片的高度和宽度),并调整图片左上点(左,上)的位置,以确保c中的比率保持不变(---确保鼠标在中央放大或缩小)

实现原理是:相对运动---鼠标和对象点的位置保持不变,鼠标周围对象点的长和宽成比例缩放。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-363504-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...