鼠标拖动嵌入的Win32窗口



在Qt对话框中,我有一个嵌入式本地Win32窗口。与任何标准的Win32一样,我定义了自己的消息队列,在默认情况下,我将所有事件转发到父窗口,如果感兴趣的事件到达,我执行一些额外的工作。

我的问题是,当我按下鼠标左键,然后我得到WM_LBUTTONDOWN如预期的,但如果我保持它按下,那么我没有得到更多的鼠标点击事件,也就是说,我得到WM_MOUSE消息,但掩码(wParam),或调用GetKeyState,不表明鼠标键保持按下。

使用以下参数创建窗口,

dwExStyle = WS_EX_TRANSPARENT;
dwStyle &= ~(WS_BORDER| WS_CAPTION | WS_DLGFRAME | WS_THICKFRAME);
CreateWindowExW(0,"Window","Name",dwStyle,
                           0,0,512,512,
                           hwndParent,NULL,hInstance,NULL )

当本机窗口没有嵌入到任何对话框中时,它可以正常工作。

我也可以将此窗口嵌入到。net对话框窗口中,并观察到同样的问题。

你知道哪里出了问题吗?

你是说WM_MOUSEMOVE吗?你试过先抓老鼠吗?

WM_LBUTTONDOWN每次点击只发送一次。您必须使用布尔值来跟踪在WM_MOUSEMOVE事件期间按钮是否被按下或释放。同时使用WM_LBUTTONDOWNWM_LBUTTONUP消息来跟踪这一点

相关内容

  • 没有找到相关文章

最新更新