标签: mousemove

div onmouseout 不符合预期

改编自http://www.webdeveloper.com/forum/archive/index.php/t-65078.html 的文本和示例代码,可能无法反映实际问题:

我有一个 div,然后有一个 div,里面有一个嵌套表:在父 div 之外还有一些 div。

<div onmousemove="move()" onmouseout="out()">
  <div id="dvRep"> </div>
    <table>
        <tr><td>ITEM 1</td></tr>
        <tr><td>ITEM 2</td></tr>
        <tr><td>ITEM 3</td></tr>
        <tr><td>ITEM 4</td></tr>
        <tr><td>ITEM 5</td></tr>
    </table>
</div>

<div id="divChartPopupMenu">
    Hide me.     
</div>
Run Code Online (Sandbox Code Playgroud)

每当我在 div 内移动鼠标时,它都会正确调用移动函数,但该onmouseout属性并不像我想象的那样工作。我认为out()只有当您将鼠标移出 div 时才会调用该函数,但是out()每当我移出表格行之一时都会调用该函数。因此,如果我的鼠标在一行上并且我移动到下一行,它会调用out(). 我只想out()在用户离开整个 div 时被调用。有任何想法吗?

我正在尝试的功能是我隐藏了另一个 div。

javascript mousemove dom-events

0
推荐指数
1
解决办法
1万
查看次数

通过单击内部小部件而不是标题栏来移动窗口

在 Windows 中,当我创建 QMainWindow 时,我可以通过单击标题栏并拖动它来在屏幕上移动它。

在我的应用程序中,我通过使用隐藏了标题栏,setWindowFlags(Qt::CustomizeWindowHint)并且我正在尝试使用小部件构建自定义标题栏并将其设置在菜单空间中setMenuWidget(myWidget)

现在我想重现原始行为:我想单击MyWidgetQMainWindow 内的小部件,然后在按下鼠标时拖动鼠标移动窗口。

有办法做到吗?

c++ qt window titlebar mousemove

0
推荐指数
1
解决办法
3037
查看次数

使用 React Hooks 在窗口上添加和删除鼠标移动侦听器

我试图在window单击对象时添加一个事件侦听器,然后在再次单击该对象时删除该事件侦听器。

Card单击组件时,状态isCardMoving会打开或关闭。

我添加了一个useEffect来观看isCardMoving。当isCardMoving打开时,它应该向mousemove触发该handleCardMove功能的窗口添加一个事件侦听器。该函数仅记录鼠标的坐标。

如果我再次单击该卡,isCardMoving将为 false,并且我希望窗口上的事件侦听器在useEffect.

isCardMoving但会发生什么情况,事件侦听器将在is时添加true,然后一旦isCardMovingis就不会被删除false

import React from 'react';

const App = () => {
  const [isCardMoving, setIsCardMoving] = React.useState(false);

  React.useEffect(() => {
    if (isCardMoving) window.addEventListener('mousemove', handleCardMove);
    else window.removeEventListener('mousemove', handleCardMove);
  }, [isCardMoving]);

  const handleCardMove = (event) => console.log({ x: event.offsetX, y: event.offsetY });

  return <Card onClick={() => setIsCardMoving(!isCardMoving)} />;
};
Run Code Online (Sandbox Code Playgroud)

然后我尝试ref在窗口上设置 …

addeventlistener mousemove reactjs react-hooks removeeventlistener

0
推荐指数
1
解决办法
8286
查看次数

WM_MOUSEMOVE GET_X_LPARAM AND GET_Y_LPARAM 抓错坐标

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode == HC_ACTION)
    {
        if (wParam == WM_MOUSEMOVE)
        {
            cout << "X : " << GET_X_LPARAM(lParam) << " Y: " << GET_Y_LPARAM(lParam) << "\n";
        }
    }
    return CallNextHookEx(hMSHook, nCode, wParam, lParam);
}

    int _tmain() {
        HMODULE hInstance = GetModuleHandle(NULL);
        hMSHook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, hInstance, NULL);

        MSG Msg;

        while (GetMessage(&Msg, NULL, 0, 0)) { DispatchMessage(&Msg); }
        ::ReleaseDC(0, dc);

        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

结果 = 总是返回错误的坐标,

示例 = X = -1844,Y = 79, …

c++ hook winapi mousemove

-1
推荐指数
1
解决办法
662
查看次数