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对应的窗口就是你想要的
}

好久没写博客了,分享一下。

转载于:https://www.cnblogs.com/yjh4866/archive/2009/08/31/1557011.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值