刚才遇到了一个问题,选择文件播放的时候,namewindow的大小和picture控件大小不一样的问题,原来的代码如下:
//CWnd *pWnd1 = GetDlgItem(IDC_STATIC_PIC);//CWnd是MFC窗口类的基类,提供了微软基础类库中所有窗口类的基本功能。
//pWnd1->GetClientRect(&rect1);//GetClientRect为获得控件相自身的坐标大小
//namedWindow("video"); //创建窗口
//HWND hWnd = (HWND)cvGetWindowHandle("video");// 得到video窗口的句柄。
//HWND hParent = ::GetParent(hWnd); // 指定子窗口的父窗口句柄
//::SetParent(hWnd, GetDlgItem(IDC_STATIC_PIC)->m_hWnd);
//::ShowWindow(hParent, SW_HIDE);
修改后的代码:
CRect rect_video; //矩形
GetDlgItem(IDC_STATIC_PIC)->GetClientRect(rect_video);// rect_video,嵌入IDC_STATIC_PIC中。
namedWindow("video", WINDOW_NORMAL);// WINDOW_NORMAL
resizeWindow("video", rect_video.Width(), rect_video.Height());
HWND hWnd = (HWND)cvGetWindowHandle("video"); // video的句柄
HWND hParent = ::GetParent(hWnd); //video句柄的父窗口
::SetParent(hWnd, GetDlgItem(IDC_STATIC_PIC)->m_hWnd); // 设置父窗口。
::ShowWindow(hParent, SW_HIDE);//SW_HIDE
正常显示了。