如何精确定位 子窗口的位置

joykidd joykidd 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我做了一个采集视频的程序,要求在采集的同时显示该视频流,由于视频窗口的大小是不定的, 所以我的视频窗口是动态确定的,在需要显示的时候先用MoveWindow()函数将窗口移到我所需要的位置 就是FormView上的一幅图的顶点,然后根据大小创建之。

我得代码如下:
hOutputArea = _pDevice[m_dwSlotNumber]->m_pViewWnd->GetDlgItem(IDC_PLAY_WND);
nDisplayInfo.dwDataType = DATATYPE_YUV420_DATA;
nDisplayInfo.dwImageHeight = m_dwHeight;//240;
nDisplayInfo.dwImageWidth = m_dwWidth;//352;
nDisplayInfo.dwSlotNumber = m_dwSlotNumber;
nDisplayInfo.hWnd = hOutputArea->m_hWnd;//_pDevice[m_dwSlotNumber]->m_pViewWnd->m_hWnd;


CRect rect,mainfrmrect;
hOutputArea->GetWindowRect(&rect);
//m_pViewWnd->GetWindowRect(&viewrect);
AfxGetApp()->m_pMainWnd->GetWindowRect(mainfrmrect);
rect.top-=mainfrmrect.top;
rect.left-=mainfrmrect.left;
//AfxGetApp()->m_pMainWnd->ScreenToClient(&rect);

m_pViewWnd->ScreenToClient(&rect);//m_pViewWnd is a pointer to FormvView class

hOutputArea->MoveWindow(rect.left,rect.top, nDisplayInfo.dwImageWidth, nDisplayInfo.dwImageHeight, TRUE);


但我的窗口总是不能精确定位,我都困扰好几天了,那位大侠帮忙!!
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
joykidd
VC/MFC 16,550 成员 421,606 内容