c++ - 如何将 OpenCV 窗口设置为点击窗口?

标签 c++ windows opencv

我在将我的窗口设置为“点击进入”窗口时遇到了问题。 我已经尝试了一些在网上找到的适用于 windowsAPI 的方法,但没有成功,鼠标无法通过创建的窗口。

我的操作系统是 Windows 10。

有什么解决办法吗? 谢谢。

最佳答案

好的,终于找到windows API函数的问题了。传递给他们的句柄是错误的,opencv cvGetWindowHandle() 返回错误的句柄,使用从 FindWindow() 返回的句柄我能够使我的窗口点击。

//-Init an opencv window
cv::namedWindow("foo");

HWND hwnd = FindWindow(NULL,"foo"); //-Work!
HWND hwnd = (HWND)cvGetWindowHandle("foo");//-Doesn't Work.

//-Set window to be click-through.
LONG lExStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
lExStyle |= WS_EX_TRANSPARENT | WS_EX_LAYERED;
SetWindowLong(hwnd, GWL_EXSTYLE, lExStyle);

//-Set the window to  always be on top.
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

关于c++ - 如何将 OpenCV 窗口设置为点击窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43288554/

相关文章:

c++ - 定义分钟单位

c++ - CWA(dll,api) - C++ 宏?

php - WAMP 服务器从 IP 地址重定向到本地主机

asp.net - 适用于 .NET 开发人员的 Windows 7 版本

c++ - 使用 opencv 创建灰度视频

c++ - 无论如何,当临时对象被销毁时,为什么还需要一个移动构造函数?

c++ - Qt-我在哪里可以找到我可以使用的字体列表?

c++ - 生成带三角条的平面

C++:opencv 上的 libpng 冲突

opencv - 通过边缘(或角)匹配进行物体识别?