zoukankan      html  css  js  c++  java
  • 鼠标在某个控件上按下,然后离开后弹起,如何捕获这个鼠标弹起事件

     

    默认情况下当鼠标移出控件外部后控件将获取不到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;
    }

    }

     

  • 相关阅读:
    dd是___元素
    【电商8】footer mod_service
    外边距塌陷问题
    隐藏display: ____;
    判断一个32位的整数的二进制有几个1
    8 switch case
    键盘录入
    两个整数的交换
    运算符
    java 异常报错总结
  • 原文地址:https://www.cnblogs.com/huhu0013/p/4629006.html
Copyright © 2011-2022 走看看