码迷,mamicode.com
首页 > Windows程序 > 详细

]用EnumChildWindows遍历窗口的方法

时间:2014-09-23 21:33:45      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:ar   sp   c   代码   ad   r   bs   window   har   

最近项目有需要,得到一个非自己实现的窗口控件对象。于是想起曾经做过类似功能。总结如下:

  调用EnumChildWindows(this->m_hWnd, EnumChildProc, NULL);遍历指定窗口的所有子窗口。这里就是遍历This->m_hWnd的所有子窗口。this从外部窗口继承,外部窗口上的控件就是我们需要查找的对象。

  实现BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam) 的窗口遍历回调函数,其中hwndChild为你指定的父窗口的各个子窗口。返回True或False,可以控制这个子窗口过程是否被继续调用,具体看MSDN,我代码返回是True,应该表示继续查找,不断调用回调函数。

  在EnumChildProc实现中可以用

  HWND EditNumHwnd = ::FindWindowEx(hwndChild,NULL,_T("Edit"),NULL);

  去查找某个Combobox控件的子Edit控件。然后用

  SendMessage(EditNumHwnd, WM_SETTEXT, (WPARAM)0, (LPARAM)(filterString.kACharPtr()));

  去设置字符串。

  用CWnd* pComBox = CWnd::FromHandle(hwndChild);
    CComboBox *pCCombox = (CComboBox *)pComBox;得到对应的Combobox类指针。

  接着就能调用AddString,DeleteString,SetCurSel这些函数了。

]用EnumChildWindows遍历窗口的方法

标签:ar   sp   c   代码   ad   r   bs   window   har   

原文地址:http://www.cnblogs.com/zhaoxinshanwei/p/3989067.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!