MFC-EnumWindows枚举顶层窗口

 

复制代码
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)  //回调函数
//参数1:EnumWindows函数自动传过来的句柄
//参数2:就是EnumWindows函数参数2的值
{
    
    TCHAR ch[MAX_PATH] = { 0 };
    CString str;
        
        ::GetWindowText(hwnd, ch, MAX_PATH);
        
        str = ch;
                
        if (str == _T("窗口句柄练习"))   //寻找指定窗口
        {
            AfxMessageBox(_T("窗口句柄练习--找到了"));
            return 0;
        }
        
    return 1;
}



void CcuankoumeijuDlg::OnBnClickedButton3()
{
    
    HWND hWnd2 = GetSafeHwnd();
    ::SetWindowText(hWnd2, _T("窗口句柄练习"));

    BOOL b = EnumWindows(EnumWindowsProc,NULL);//枚举顶层窗口
    //该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数。
    // 回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止
    //参数1:回调函数指针
    //参数2:lPararm:指定一个传递给回调函数的值
    //返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零
    //说明:EnumWindows函数不列举子窗口;
    //      调用这个函数比调用GetWindow函数更可靠。调用GetWindow函数中执行这个任务的应用程序可能会陷入死循环或指向一个已被销毁的窗口的句柄





}
复制代码

 

 

 

 

 

 

posted @   天子骄龙  阅读(192)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2022-03-08 halcon-remove_obj在区域集中移除某个区域
2022-03-08 halcon-gen_region_points获取点区域
2022-03-08 halcon-complement区域的反选
2022-03-08 halcon-union2将两个区域合并成一个区域
2022-03-08 halcon-union1将所有区域合并成一个区域
2022-03-08 halcon-闭运算(先膨胀后腐蚀)
2022-03-08 halcon-开运算(先腐蚀再膨胀)
点击右上角即可分享
微信分享提示