当前位置: 首页 > news >正文

电商类网站开发项目流程老薛主机怎么安装wordpress

电商类网站开发项目流程,老薛主机怎么安装wordpress,网站开发与设计 课程简介,做国外产品描述的网站介绍 在截图工具中你会发现,接触到窗口后会自动圈出目标窗口,个别强大一点的还能进行元素识别可以自动圈出元素,那么今天简单分析一下QTc如何获取窗口并圈出当前鼠标下的窗口。 介绍1.如何获取所有窗口2.比较函数3.实现窗口判断 结尾 1.如何获取所有窗口…

介绍

在截图工具中你会发现,接触到窗口后会自动圈出目标窗口,个别强大一点的还能进行元素识别可以自动圈出元素,那么今天简单分析一下QTc++如何获取窗口并圈出当前鼠标下的窗口。

  • 介绍
    • 1.如何获取所有窗口
    • 2.比较函数
    • 3.实现窗口判断
  • 结尾

1.如何获取所有窗口

1.我们需要调用windows接口EnumWindowsProc回调函数来获取所有顶级窗口,需要包含windows.h,以及pro文件链接win库。

win32 {LIBS+= -luser32 -ldwmapi    # 使用WindowsAPI需要链接库
}
// 窗口信息结构体
struct WindowInfo
{HWND hwnd; // 窗口句柄int zOrder; // 窗口的Z序,值越小越在顶层RECT rect; // 窗口区域POINT pos; //窗口坐标
};std::vector<WindowInfo> windows; //窗口信息列表排序的
// 获取所有顶级窗口的回调函数
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{std::vector<WindowInfo>* windows = reinterpret_cast<std::vector<WindowInfo>*>(lParam);if (IsWindowVisible(hwnd)) // 如果窗口可见{char title[256];GetWindowTextA(hwnd, title, sizeof(title));// 过滤掉一些不需要的窗口QString str = QString::fromLocal8Bit(title);if (str.isEmpty() || str == "ZOrder" || str == "YMagnifier"){return TRUE; // 继续下一个窗口}// 获取窗口区域RECT rect;GetWindowRect(hwnd, &rect);int zOrder = GetWindowZOrder(hwnd);windows->push_back({hwnd, zOrder, rect});}return TRUE;
}

2.比较函数

1.那么我们获取窗口后,我们需要知道窗口的层级,自然要获取鼠标下最顶层的窗口句柄。

// 比较函数,用于排序窗口信息
bool CompareWindowInfo(const WindowInfo& a, const WindowInfo& b)
{return a.zOrder < b.zOrder;
}

3.实现窗口判断

1.第一步我们先调用接口
// 枚举所有顶级窗口
EnumWindows(EnumWindowsProc, reinterpret_cast<LPARAM>(&windows));// 按照Z序排序窗口信息
std::sort(windows.begin(), windows.end(), CompareWindowInfo);// 获取鼠标当前位置
POINT cursorPos;
GetCursorPos(&cursorPos);2.然后比遍历调用PtInRect判断列表的窗口位置是否匹配当前鼠标位置
匹配的话就可以拿坐标宽高来绘制了
// 寻找处于鼠标位置下的最顶层窗口
for (const auto& window : windows)
{if (PtInRect(&window.rect, cursorPos)){// 窗口左上角坐标int x = window.rect.left;int y = window.rect.top;// 窗口宽度和高度int width = window.rect.right - window.rect.left;int height = window.rect.bottom - window.rect.top;// 判断窗口是否位于主显示器上if (!IsWindowOnPrimaryMonitor(window.hwnd)) {x = (image.width() + x);}expectArea.setX(qAbs(x));expectArea.setY(qAbs(y));expectArea.setWidth(width);expectArea.setHeight(height);refreshScreenShotArea();isSelectWin = true;break;}
}

结尾

1.通过以上代码就可以实现获取鼠标当下的窗口,如想获取元素,后面会更新新的文章。

http://www.yayakq.cn/news/623066/

相关文章:

  • 建立网站的相关信息怎么做网站的导航
  • 西安网站建设小程序开发免费logo商标设计
  • 建电子商务网站淘宝网站可以做轮播吗
  • 网站建设需要入无形资产吗免费行情软件app网站大全下载u288
  • 珠海网站制作推广公司游戏攻略网站开发
  • 网站服务器迁移网站估值
  • 给国外做网站为什么要做网站推广
  • 网页设计在线培训网站有哪些世界上让导航崩溃的城市
  • 宁阳网站定制下载建设银行官方网站下载安装
  • 网站建设应该懂什么知识网站关键词优化合同
  • 想开个网站卖衣服的怎么做潮州市住房和城乡建设局网站
  • 网站建设颜色搭配网站专题怎么做
  • 深圳网站建设最专重庆大渡口网站建设解决方案
  • 旅游网站建设前的市场分析干部网络培训平台
  • 广州市建设工程项目代建局网站注册网站显示lp或设备超限怎么办
  • 网站接入地兰州网站在哪备案
  • 好看云在线网站模板wordpress 引号转义
  • 网站规划教学设计网页游戏排行榜 2020
  • 公司备案证查询网站查询网站查询小牛在线运营管理平台
  • 网站用asp还是php网站建设具体详细过程
  • 网站前端怎么做中企动力是私企还是国企
  • 如何学习网站建设app广东省自然资源厅三定方案
  • 网站开发的技术路线python网页版编辑器
  • 上海网站建设网页二手车网站软件建设
  • 个人小型网站建设网站qq获取
  • 平面设计素材网站知乎微信手机网站开发
  • 珠海哪个公司做网站好网站多久才能做起来
  • 网站开发和编程有什么区别高新快速建设网站电话
  • 深圳网站建设qwyx100永久免费的网站地址
  • wordpress站多久有排名永川做网站的公司