zoukankan      html  css  js  c++  java
  • MFC枚举窗口

    去年七月份开始学C#,今年六月份因为公司的原因,重新学习MFC。
    以前一直以为VC++编程很麻烦,现在越来越感觉到上手了;尽管VC++没有VS那样方便,MFC不像C#那样易上手,但从效率上讲MFC是很好的选择,只是动态库及多线程没有C#方便,这是比较郁闷的。
    近来写QQ游戏的外挂,写了找茬的、连连看的,昨晚上写火拼俄罗斯的时出问题了,游戏窗口获取的不对,问个网友才知道栏题是“火拼俄罗斯方块”的窗口不是一个,所以得枚举窗口。
    现在网上枚举窗口最多的就是EnumWindows,这是要回调函数的,回调的函数必须是全局的,或者静态的,对MFC来说太麻烦了。寻找窗口MFC用CWnd::FindWindow,对应的API是FindWindow;枚举窗口API是EnumWindows,MFC也应该有对应的啊。刚刚研究了一下发现一个好办法。

     CWnd* wnd = this;
     while(true)
     {
      if(wnd == NULL)
       break;
      CRect rect;
      wnd->GetWindowRect(&rect);
      CString str;
      wnd->GetWindowText(str);
      if(rect是你想要的窗口的大小&&str是你想要的窗口的标题)
      {
         break;
      }
      wnd = wnd->GetNextWindow(GW_HWNDNEXT);
     }
    if(wnd != NULL)
    {
      wnd对应的窗口就是你想要的
    }

    好久没写博客了,分享一下。
  • 相关阅读:
    metaClass
    First-class citizen
    class-metaclass-Class vs. type
    eval-Evaluation
    编程语言:数据+算法;
    线程的关系
    线程的核心是算法,是面向过程的
    多线程与控制结构-面向过程
    线程安全-上线文-运行环境
    面向对象的语言学本质
  • 原文地址:https://www.cnblogs.com/yjh4866/p/1557011.html
Copyright © 2011-2022 走看看