默认情况下当鼠标移出控件外部后控件将获取不到WM_LBUTTONUP消息。
以下通过SetCapture函数实现获取。

SetCapture 函数功能:

该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。

LRESULT CALLBACK TestProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_LBUTTONDOWN: //左键按下
{
SetCapture(hwnd);
}
break;
case WM_MOUSEMOVE: //鼠标按下移动
{
if(GetCapture() == hwnd)
{
//鼠标按下并移动...
}
}
break;
case WM_LBUTTONUP: //左键弹起
{
if(GetCapture() == hwnd)
ReleaseCapture(); //当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。
}
break;

return 0;
}

}

转载于:https://www.cnblogs.com/huhu0013/p/4629006.html

鼠标在某个控件上按下,然后离开后弹起,如何捕获这个鼠标弹起事件相关推荐

  1. 判断鼠标不在控件上_基础设施:一套基本控件

    类可以把需要重复使用的代码封装到一起多次使用, 但这样的代码仍不能被不同的程序使用. 把自己常用的代码编到一起,打包成库的话,就能制成一套自用工具库作为基础设施. 这里常用的部分,首先就是界面控件. ...

  2. C#中,当鼠标移动到控件上,动态显示提示内容 - 用代码操作ToolTip

    [背景] 写了个C#的小程序,其中在Settings窗体中有些配置参数,希望在鼠标移动到对应的配置选项上,动态显示相关的说明解释内容. [解决过程] 1.原先就已经知道,有些控件,是带ToolTipT ...

  3. C#窗体Winform,鼠标悬停在控件上,提示框,显示信息。

    文章开始之前,先看下一个简短的录频效果. 实现原理: 他是鼠标悬停在控件上方后,弹出另一个窗体,该窗体可以展示不同的自定义组件,达到显示不同的各种需求的目的. 一.先制作容器窗体 using Syst ...

  4. 判断鼠标不在控件上_VB常用控件属性讲解单选按钮、复选框总结

    1 单选按钮.复选框做为VB编程中的选择性控件,在实际程序中有着广泛的应用,所以熟练掌握其特殊属性的用法就很重要了! 单选按钮.复选框的实际应用图 复选框(CheckBox)控件 属性 说明 Name ...

  5. qt获取窗口的右上角位置_如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置...

    用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局. 但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置. 在处理子窗口鼠标事件时变的很麻烦.主 ...

  6. Plupload控件在IE9下不能上传、文件尺寸为空、出现下载对话框问题解决

    问题: Plupload控件在IE10下运行良好,但在IE9下却不能上传,一点上传按钮,即出现下载对话框.而实际的返回数据为一堆正常的JSON数据. 有网友提过这个问题,他是这么提的:"使用 ...

  7. c# 窗体控件上绘制跟随鼠标的十字线

    一.技术路线 (1)以自定义大小的image为画布,绘制窗体控件显示的主题内容 public Image img=new Bitmap(250,250);   //定义img Graphics gr ...

  8. asp.net夜话之九:验证控件(上)

        本篇要讲述的知识点如下: 数据验证介绍 纯客户端脚本验证 asp.net验证控件概述 RequiredFieldValidator控件 CompareValidator控件 RangeVali ...

  9. Qt-在控件上绘图的方式

    1.总述 Qt的要在当前类对应的窗口上绘图一般需要重写paintEvent函数,但是Qt的事件过滤器默认是把父窗口下子控件的绘图事件给过滤了的,因此重写父窗口的paintEvent函数是无法在子控件上 ...

最新文章

  1. 使用Nmap获取目标服务器开放的服务以及操作系统信息
  2. NBT:PICRUSt2预测宏基因组功能
  3. 用指针实现删除数组中小于10的数据
  4. 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取...
  5. php 模板制作教程,Destoon模板制作简明教程_PHP教程
  6. WinExec, ShellExecute,CreateProcess的对比
  7. Unity3D 重写下拉菜单/Dropdown组件、开启每个按钮可用
  8. Linux 命令之 id -- 显示用户ID和组ID
  9. python进程池pool_python多任务--进程池Pool
  10. LeetCode 1680. 连接连续二进制数字(位运算)
  11. 江苏成教计算机统考操作题多少分,江苏省成人计算机统考试题,操作题.doc
  12. 资产组合管理中有哪些基础概念?
  13. 钩子的应用: 程序运行监视
  14. 使用SQL管理数据库
  15. obs 推流编码在哪设置_在OBS上进行H265推流
  16. 国内知名公共 DNS 服务器居然有你知道哪些
  17. 蓝绿部署、滚动部署、灰度发布、金丝雀发布
  18. WebService测试工具介绍及下载
  19. 银联押宝二维码支付 背后还有一片纷争江湖
  20. 计算机专业大学综合实力排名2015,2015年世界计算机专业大学排行榜

热门文章

  1. Linux系统管理(11)——linux下jdk的安装及环境变量配置
  2. 写给数据分析小白:一种通用的数据思维
  3. LinuxCentos7 防火墙开放端口,查看状态,查看开放端口
  4. rabbitmq php类库,RabbitMQ客户端的PHP库
  5. vue路由配置src/router/index.js
  6. mysql more和tail_cat、less、more、head、tail这几个命令区别
  7. wps可以登录网页版_教程丨WPS会员半自动打卡
  8. matlab合成音乐原理,matlab 做音乐合成
  9. 修改windows cmd f2快捷_解放你的右手,实测12个超好用的自带快捷键
  10. 深度学习入门笔记(五):神经网络的学习