将OpenCV窗口居中显示在MFC窗口中 - 解决方案
如果OpenCV窗口比MFC窗口大,可以通过计算来移动OpenCV窗口到居中位置。具体步骤如下:
- 获取MFC窗口的大小和位置:
CRect mfcRect;
GetDlgItem(IDC_PIC)->GetClientRect(&mfcRect);
- 获取OpenCV窗口的大小:
CvSize opencvSize = cvGetSize(image); // 假设image是OpenCV图像
int opencvWidth = opencvSize.width;
int opencvHeight = opencvSize.height;
- 计算OpenCV窗口在MFC窗口中的位置:
int x = (mfcRect.Width() - opencvWidth) / 2;
int y = (mfcRect.Height() - opencvHeight) / 2;
- 移动OpenCV窗口到居中位置:
::SetWindowPos(hWnd, NULL, x, y, opencvWidth, opencvHeight, SWP_SHOWWINDOW);
注意:以上代码假设OpenCV窗口的大小是已知的,可以根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/0At 著作权归作者所有。请勿转载和采集!