【发布时间】:2018-02-27 23:25:04
【问题描述】:
我正在尝试允许用户移动/调整 CEF 无边框窗口(使用 WS_POPUP 标志创建)。
鼠标位置在 CEF 浏览器中被捕获(使用 Javascript)并调用 C++ 回调。然后,我通过 IPC 从 C++ 回调向 CEF 浏览器进程发送一条消息(例如,该消息可以包含 HTRIGHT)。 最后一步是移动或调整浏览器的大小。 我想生成 WM_NCHITTEST 消息以允许窗口移动/调整大小。
我试图这样做:
PostMessage(getBrowserHwnd(), WM_NCHITTEST, 0, MAKELPARAM(cursorPos.x, cursorPos.y));
当然,它不起作用。
所以我的问题是:有没有办法生成 WM_NCHITTEST 消息? CEF 不允许我访问窗口的客户区,因此我的窗口过程不会收到任何鼠标事件。
任何帮助将不胜感激。
winapi包装器
【问题讨论】:
-
WM_NCHITTEST有一个返回值,所以你必须使用SendMessage()而不是PostMessage()。 -
感谢您的回复!不幸的是,它不起作用。似乎 CEF 在其自己的窗口过程中处理所有这些消息。
-
对我来说听起来像是XY Problem。您真正想要完成什么?为什么您认为发送
WM_NCHITTEST是解决方案的一部分? -
是的,你是对的,那我就新建一个话题。
标签: c++ winapi chromium-embedded hittest borderless