首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

有没有不依赖于消息机制就可以判断鼠标左键正在按上的方法

2012-10-20 
有没有不依赖于消息机制就可以判断鼠标左键正在按下的方法?我新建了一个对话框程序, 在该窗口上按下鼠标,

有没有不依赖于消息机制就可以判断鼠标左键正在按下的方法?
我新建了一个对话框程序, 在该窗口上按下鼠标, 可以得到wm_lbutton, 一直按鼠标, 并在窗口内拖动, 可以得到wm_mousemove(flags标志有鼠标按下状态). . 这是对的.

在桌面上(位于我们的窗口外)的任一文件上按下鼠标, 我们的程序不能得到wm_lbutton, 一直按鼠标, 将文件拖动到窗口上, 可以得到wm_mousemove(但flags标志没有鼠标按下状态).

在这种情况下, 鼠标拖动与mousemove区分不了, 怎么办?

有没有不依赖于消息机制就可以判断鼠标正在按下的方法?




[解决办法]
用 全局钩子,把所有 关于鼠标消息 全部 勾取 过来 ,然后 判断 鼠标这个时候的状态 ,设置一个 成员变量,如果 鼠标是 wm_lbutton 记作 1,up记作2 ,然后 当 你的wm_mousemove 过来的 时候,判断 这个 成员变量的 值就行了。

[解决办法]
全局 钩子 在你 启动 exe 的时候 才会 勾取 鼠标消息。你关闭 exe 程序的时候 ,当然 钩子 也就失效了。
我没有 试过 这样 做 ,只是 提供一个 解决办法,希望能 给你 帮助。

热点排行