首页 > 编程知识 正文

capture使用教程(videocapture详解)

时间:2023-05-03 08:43:29 阅读:71842 作者:1978

最近用win32写了《visual C++经典游戏程序设计》的扫雷游戏。 当我用鼠标点击扫雷游戏时,我使用了一个叫SetCapture和ReleaseCapture的系统函数。

那么为什么需要鼠标捕获的函数呢?

我误以为只要能用定点处理鼠标跟踪,就能实现我想要的功能,但我在按鼠标的时候没有把鼠标移出窗外。 在这种情况下,鼠标在外面,所以鼠标抬起时鼠标的位置不在扫雷窗口中,因此必须在按下鼠标时捕获鼠标的位置。 这样可以解决鼠标不在窗户里的问题。

引用百度百科的SetCapture介绍:

函数:此函数在属于当前线程的指定窗口中设置鼠标捕捉。 当窗口捕获鼠标时,所有鼠标输入都将应用于窗口,无论光标是否位于窗口边界内。 一次只能有一个窗口捕获鼠标。 如果鼠标光标位于由另一个线程创建的窗口上,则只有在按下鼠标按钮时,才指向指定了鼠标输入的窗口。

函数原型: hwndsetcapture; 参数: hWnd :在当前线程上捕获鼠标的窗口句柄。 返回值:返回值是上次捕获鼠标的窗口句柄。 如果不存在这样的句柄,则返回值为空。 注:只有前窗口可以捕获鼠标。 如果后台窗口尝试捕获鼠标,则只有窗口中显示光标热点的部分的鼠标事件会收到消息。 此外,即使当前窗口捕捉到鼠标,用户也可以单击另一个窗口将其放入前台。 如果窗口不再需要所有鼠标输入,创建窗口的线程必须调用函数ReleaseCapture并释放鼠标。 此函数不能用于捕获另一个进程的鼠标输入。 windows 95 :调用setcaptune时,将在丢失鼠标捕捉的窗口中显示WM_CAPTURECHANGED消息。 快查:头文件: Winuser.h :输入库: user32.lib。 Javascript中的“鼠标捕获”(setCapture )负责将鼠标事件捕获到当前文档中的指定对象。 此对象接收当前APP应用程序或整个系统中的所有鼠标事件。

以下是一个可以轻松理解SetCapture和ReleaseCapture角色的示例。

查看此日志时,ctdxxm会拉动右手滑块调整内容的上下位置。 在中,当ctdxxm按下左键时,如果将鼠标移动到不是滚动条的位置,则可以看到,上下移动鼠标滚动条仍然受到控制。 没错,这就是捕获鼠标函数SetCapture的作用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。