• 枚举顶级窗口函数EnumWindows和它的回调函数的使用!


     首先是它的原型
    BOOL EnumWindows(
         WNDENUMPROC lpEnumFunc,     // 回调函数的地址--说白了就是回调函数的名字放这
         LPARAM lParam               // 要是枚举桌面所有窗口添0或NULL就行
    );
    在来看看回调函数原型
    BOOL CALLBACK EnumWindowsProc(
         HWND hwnd,         //句柄参数,这里返回的就是窗口句柄
         LPARAM lParam      // application-defined value--什么意思不知道,我是用不上
    );
    回调函数使用的时候一定要把上面的原型写出来,要一模一样,EnumWindowsProc这个函数名字可以
    随便启的,比如:BOOL CALLBACK abcd(HWND hwnd,LPARAM lParam);把“;”去掉接函数体就可以了,函数体就是你要执行的代码,比如:
    BOOL CALLBACK abcd(HWND hwnd,LPARAM lParam)
    {
    CString text;
    int len=::GetWindowTextLength (hwnd);//获得窗口句柄hwnd指向的窗口标题长度
    ::GetWindowText (hwnd,(LPSTR)(LPCTSTR)text,len+1);获得窗口句柄hwnd指向的窗口标题
    m_list.AddString ((LPSTR)(LPCTSTR)text);//m_list是指向列表框的CListBox m_list
    return 1;//这里必须返回1,返回0就不在枚举了
    }

    example:

     BOOL   CALLBACK   MyEnumProc(HWND   hwnd,   LPARAM   lParam   )  
      {  
          printf("窗口句柄是%x,传递的参数是%d",   hwnd,   lParam);  
      }  
      main  
      {  
          int   n=3;//任意的一个参数  
          EnumWindows(MyEnumProc,   (LPARAM)n);  
          ...  
      }

  • 相关阅读:
    ES的基本用法
    Elasticsearch安装部署
    jquery-layer弹框在火狐浏览器中弹框不显示的问题
    MySQL中横表和竖表相互转换
    echarts--迁徙图特性简介
    Lucene入门案例一
    Lucene入门简介
    SpringMVC中的拦截器
    SpringMVC中Json数据格式转换
    SpringMVC中的文件上传
  • 原文地址:https://www.cnblogs.com/buffer/p/1257708.html
Copyright © 2020-2023  润新知