zoukankan      html  css  js  c++  java
  • 枚举顶级窗口函数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);  
          ...  
      }

  • 相关阅读:
    HDU 5059 Help him
    HDU 5058 So easy
    HDU 5056 Boring count
    HDU 5055 Bob and math problem
    HDU 5054 Alice and Bob
    HDU 5019 Revenge of GCD
    HDU 5018 Revenge of Fibonacci
    HDU 1556 Color the ball
    CodeForces 702D Road to Post Office
    CodeForces 702C Cellular Network
  • 原文地址:https://www.cnblogs.com/buffer/p/1257708.html
Copyright © 2011-2022 走看看