现用NPAPI在做Chrome浏览器的一个插件(Win32上用C++开发),插件带有Windows窗口。
问题:当在Chrome中打开测试网页HTML文件,创建插件和窗口,可显示窗口。此时点击浏览器最大化按钮,将其缩小(但没最小化),用鼠标拖动浏览器的标题栏,使得浏览器在桌面上平移,但插件窗口却原地不动,因为获取不到WM_MOUSEMOVE 和 MK_LBUTTON消息(通过Spy++来抓取,才得知这两个消息的),无法用MoveWindow函数来移动窗口。
另外,我用鼠标低级钩子做过试验,拖动操作中可以获取WM_MOUSEMOVE消息,但用钩子的方法并不好,也不想用这种方法来解决问题,不知哪位朋友可以给支个招?
问题:当在Chrome中打开测试网页HTML文件,创建插件和窗口,可显示窗口。此时点击浏览器最大化按钮,将其缩小(但没最小化),用鼠标拖动浏览器的标题栏,使得浏览器在桌面上平移,但插件窗口却原地不动,因为获取不到WM_MOUSEMOVE 和 MK_LBUTTON消息(通过Spy++来抓取,才得知这两个消息的),无法用MoveWindow函数来移动窗口。
另外,我用鼠标低级钩子做过试验,拖动操作中可以获取WM_MOUSEMOVE消息,但用钩子的方法并不好,也不想用这种方法来解决问题,不知哪位朋友可以给支个招?
嗯,这个方法可以解决。但有个问题,我的插件里窗口有四分屏,有透明窗口,有不透明窗口,窗口比较多,并且这些窗口全都是WS_POPUP风格的。定时器函数中执行的频率较高,对每个窗口都要Move,还有实际情况也就是当浏览器被鼠标拖动时需要Move。