实例1.3:获得指定点的窗口

获得指定点的窗口使用WindowFromPoint函数  

函数功能:该函数获得包含指定点的窗口的句柄。   

函数原型:HWND WindowFromPoint(POINT Point);   

参数:   Point:指定一个被检测的点的POINT结构。   

返回值S:返回值为包含该点的窗口的句柄。如果包含指定点的窗口不存在,返回值为NULL。如果该点在静态文本控件之上,返回值是在该静态文本控件的下面的窗口的句柄。   

备注:WindowFromPoint函数不获取隐藏或禁止的窗口句柄,即使点在该窗口内。应用程序应该使用ChildWindowFromPoint函数进行无限制查询,这样就可以获得静态文本控件的句柄。

1
2
3
4
5
6
7
8
9
10
11
12
//获得指定点的窗口
CWnd* pWnd = WindowFromPoint(point);
if (pWnd != NULL)
{
    if (IsChild(pWnd))
    {
        CString strText = _T("");
        pWnd->GetWindowText(strText);
        SetWindowText(strText);
    }
}
CDialog::OnMouseMove(nFlags, point);

 另一个函数,IsChild,判断当前窗口是pWnd的子窗口或是CWnd的派生窗口。

posted @   獨孤劒  阅读(301)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
点击右上角即可分享
微信分享提示