OpenCV 窗口居中显示在 MFC 窗口的方法
要将 OpenCV 窗口居中显示在 MFC 窗口中,可以使用以下代码:
// 创建 OpenCV 窗口
namedWindow('WND_NAME');
// 获取 OpenCV 窗口的句柄
HWND hWnd = (HWND)cvGetWindowHandle('WND_NAME');
// 获取 MFC 窗口中用于显示图片的控件句柄
HWND hPicWnd = GetDlgItem(IDC_PIC)->m_hWnd;
// 将 OpenCV 窗口设置为 MFC 窗口的子窗口
::SetParent(hWnd, hPicWnd);
// 获取 MFC 窗口和 OpenCV 窗口的大小
RECT rcMfc, rcOpencv;
::GetClientRect(hPicWnd, &rcMfc);
::GetClientRect(hWnd, &rcOpencv);
// 计算 OpenCV 窗口在 MFC 窗口中的位置
int x = (rcMfc.right - rcOpencv.right) / 2;
int y = (rcMfc.bottom - rcOpencv.bottom) / 2;
// 移动 OpenCV 窗口到计算得到的位置
::MoveWindow(hWnd, x, y, rcOpencv.right, rcOpencv.bottom, TRUE);
其中,'WND_NAME' 是 OpenCV 窗口的名称,'IDC_PIC' 是 MFC 窗口中用于显示图片的控件的 ID。这段代码将 OpenCV 窗口设置为 MFC 窗口的子窗口,并将 OpenCV 窗口移动到居中位置。
原文地址: https://www.cveoy.top/t/topic/0M3 著作权归作者所有。请勿转载和采集!