MFC-GetTopWindow获取指定窗口的子窗口中最顶层的窗口句柄

 

复制代码
    //GetTopWindow
    HWND hWnd = ::FindWindow(_T("#32770"), _T("测试程序"));
    if (!hWnd) {
        AfxMessageBox(_T("请打开测试程序"));
        ExitProcess(0);
    }
    CString str;
    str.Format(_T("主窗口句柄:hWnd=%d\r\n"), hWnd);
    ::OutputDebugString(str);

    HWND hWnd1 = ::FindWindowEx(hWnd, NULL, _T("Static"), _T("静态文本框"));
    str.Format(_T("静态文本框句柄:hWnd1=%d\r\n"), hWnd1);
    ::OutputDebugString(str);

    HWND hWnd2 = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL);
    str.Format(_T("编辑框句柄:hWnd2=%d\r\n"), hWnd2);
    ::OutputDebugString(str);

    HWND hWnd3 = ::FindWindowEx(hWnd, NULL, _T("Button"), _T("按钮"));
    str.Format(_T("按钮句柄:hWnd3=%d\r\n"), hWnd3);
    ::OutputDebugString(str);


    ::BringWindowToTop(hWnd2);
    
    HWND hWnd4 = ::GetTopWindow(hWnd);//获取指定窗口的子窗口中最顶层的窗口句柄
    /*
    参数:HWND hWnd 被查序的父窗口的句柄。如果该参数为NULL,函数返回Z序顶部的窗口句柄
    【这个函数一般用在同一个程序中父子窗口;桌面的顶层窗口是一个不可见窗口MSCTFIME UI】
    */

    str.Format(_T("顶部窗口句柄:hWnd4=%d\r\n"), hWnd4);
    ::OutputDebugString(str);

    
    //返回的顶部窗口是编辑框

    ::BringWindowToTop(hWnd3);
    //把按钮放到Z序的顶部
    hWnd4 = ::GetTopWindow(hWnd);
    str.Format(_T("顶部窗口句柄:hWnd4=%d\r\n"), hWnd4);
    ::OutputDebugString(str);

    //返回的顶部窗口是编辑框
复制代码

测试程序下载:

链接:https://pan.baidu.com/s/1f4e8R5wi6dnu-Ut4Hop5Vg
提取码:6666

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(339)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
历史上的今天:
2022-04-26 halcon-elliptic_axis计算区域的等效椭圆数据
点击右上角即可分享
微信分享提示