EnumChildWindows

2009. 7. 3. 12:07 from 셈말짓기/옹알이

Child Window 순회 함수...
그런데... MS가 만든게 있었네 =_=;
 
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
 CWindow wnd (hwnd);
 wnd.SetFont ((HFONT)lParam);

 return TRUE;
}

BOOL myEnumChildWindows (HWND hParent, WNDENUMPROC lpEnumProc, LPARAM lParam)
{
 HWND hEnum;
 BOOL bContinue = TRUE;

 TCHAR szCaption[256];

 hEnum = ::GetWindow (hParent, GW_CHILD);
 while (NULL!=hEnum && TRUE==bContinue)
 {
  ::GetWindowText (hEnum, szCaption, 256);
  ATLTRACE (_T("Child=%08x,%s \r\n"), hEnum, szCaption);

  bContinue = lpEnumProc (hEnum, lParam);

  if (NULL!=::GetWindow (hEnum, GW_CHILD))
  {
   if (TRUE==bContinue)
    bContinue=EnumChildWindows (hEnum, lpEnumProc, lParam);
  }

  hEnum = ::GetNextWindow (hEnum, GW_HWNDNEXT);
 }

 return bContinue;
}

Posted by 셈말짓기 :