查找资料后整理如下
-
-
-
-
-
-
-
-
-
- #ifndef _CWINDOW_ITERATOR_ZWF_H_
- #define _CWINDOW_ITERATOR_ZWF_H_
-
- #include <vector>
- using namespace std;
-
- class CWindowIterator
- {
- public:
-
- CWindowIterator();
- ~CWindowIterator();
-
- public:
-
- void EnumWnds();
- unsigned long GetWndCounts();
- HWND First();
- HWND Next();
- HWND GetHWnd(unsigned long wndIndex);
-
- protected:
- vector<HWND> m_hWndArray;
- unsigned long m_nCurrentWndIndex;
-
-
- static BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lp);
-
-
- virtual BOOL AddWnd(HWND hwnd);
-
-
- virtual BOOL IsTargetWnd(HWND hwnd) {return TRUE;}
-
- };
-
-
-
- class CMainHWnd : public CWindowIterator
- {
- public:
-
- CMainHWnd();
- CMainHWnd(unsigned long pid);
- ~CMainHWnd();
-
- public:
-
- void EnumWndsByPid(DWORD pid);
-
- protected:
- DWORD m_pid;
- virtual BOOL IsTargetWnd(HWND hwnd);
-
- };
-
- #endif
源文件
|