admin
2022-06-30 a17738e1545ff7dbef6398b8ec1eab93ab59c9a1
ConsoleApplication/CaptureUtil.cpp
@@ -1,6 +1,6 @@
#include "CaptureUtil.h"
HWND CaptureUtil::frames[8];
HWND CaptureUtil::level2Frames[8];
std::list<FrameInfo> CaptureUtil::tempFrames;
BOOL CALLBACK CaptureUtil::EnumChildProc(HWND hwndChild, LPARAM lParam) {
@@ -10,8 +10,9 @@
   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;
@@ -32,18 +33,13 @@
   }
   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;
@@ -51,11 +47,11 @@
      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) {