C++ lanrenAPI 类库:实现鼠标穿透功能
lanrenAPI 类库:实现鼠标穿透功能
头文件
#ifndef LANRENAPI_H
#define LANRENAPI_H
#include <windows.h>
class lanrenAPI
{
public:
lanrenAPI();
~lanrenAPI();
// 设置鼠标穿透
static bool setWindowsMousePenetrate(HWND hwnd, bool setPenetrate = true);
};
#endif // LANRENAPI_H
Cpp 文件
#include "lanrenapi.h"
lanrenAPI::lanrenAPI()
{
}
lanrenAPI::~lanrenAPI()
{
}
bool lanrenAPI::setWindowsMousePenetrate(HWND hwnd, bool setPenetrate)
{
bool ret;
if (setPenetrate)
{
int a = GetWindowLongA(hwnd, GWL_EXSTYLE);
a = a | 32 | 524288;
ret = SetWindowLongA(hwnd, GWL_EXSTYLE, a);
}
else
{
ret = SetWindowLongA(hwnd, GWL_EXSTYLE, 524288);
}
return ret;
}
调用方法
在其他 Cpp 文件中,可以使用以下方法调用 setWindowsMousePenetrate 函数:
// 获取窗口句柄
HWND hwnd = (HWND)(this->winId());
// 设置鼠标穿透
lanrenAPI::setWindowsMousePenetrate(hwnd, true);
注意:
setWindowsMousePenetrate是一个静态函数,需要通过类名lanrenAPI来调用。- 需要传入正确的参数,包括窗口句柄
hwnd和是否设置穿透true或false。
常见错误和解决方案
错误: lanrenAPI.setWindowsMousePenetrate(setWindowsMousePenetrate(HWND,true);
原因: 错误调用方式。
解决方案: 使用正确的调用方式,如上面示例所示。
错误: lanrenAPI::setWindowsMousePenetrate(hwnd,true);
原因: 错误调用方式。
解决方案: 使用正确的调用方式,如上面示例所示。
总结
lanrenAPI 类库提供了简单方便的鼠标穿透功能,只需要调用 setWindowsMousePenetrate 静态函数,传入正确的参数即可。本文档详细介绍了 lanrenAPI 的使用方法,并解释了常见的调用错误和解决方案。
原文地址: https://www.cveoy.top/t/topic/nrLT 著作权归作者所有。请勿转载和采集!