| | |
| | | #include "CaptureUtil.h" |
| | | |
| | | HWND CaptureUtil::frames[8]; |
| | | HWND CaptureUtil::level2Frames[8]; |
| | | std::list<FrameInfo> CaptureUtil::tempFrames; |
| | | |
| | | BOOL CALLBACK CaptureUtil::EnumChildProc(HWND hwndChild, LPARAM lParam) { |
| | |
| | | if (string(className) == "AfxWnd100s") { |
| | | RECT rect; |
| | | GetWindowRect(hwndChild, &rect); |
| | | bool show= IsWindowVisible(hwndChild); |
| | | |
| | | if (rect.right - rect.left < 1000&& rect.right - rect.left>400) |
| | | if (show&&rect.right - rect.left < 1000&& rect.right - rect.left>400) |
| | | { |
| | | FrameInfo info = FrameInfo(); |
| | | info.frame = hwndChild; |
| | |
| | | } |
| | | return TRUE; |
| | | } |
| | | void CaptureUtil::init(std::string winName) { |
| | | void CaptureUtil::init(HWND l2win) { |
| | | tempFrames.clear(); |
| | | HWND root = FindWindowA(NULL, winName.c_str()); |
| | | HWND root = l2win; |
| | | |
| | | root = FindWindowEx(root, NULL, TEXT("AfxFrameOrView100s"), NULL); |
| | | |
| | | EnumChildWindows(root, EnumChildProc, NULL); |
| | | |
| | | //TODO list排序 |
| | | |
| | | |
| | | |
| | | //赋值 |
| | | std::list<FrameInfo>::iterator ele; |
| | | int index = 0; |
| | |
| | | if (index > 7) { |
| | | break; |
| | | } |
| | | frames[index++] = (*ele).frame; |
| | | level2Frames[index++] = (*ele).frame; |
| | | } |
| | | } |
| | | HWND CaptureUtil::getHWND(int index) { |
| | | return frames[index]; |
| | | return level2Frames[index]; |
| | | } |
| | | |
| | | cv::Mat CaptureUtil::capture(int index) { |