【发布时间】:2014-06-12 13:46:51
【问题描述】:
在 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 对话窗口中并观察相同的问题。
有什么线索会出什么问题吗?
【问题讨论】:
标签: winapi dialog event-handling mouseevent