大家帮忙看看,多文档应用程序,新建多个文档后,如何获得当前被激活的文档指针。
void CghghView::WorkCanvusToWindow()
{
//CView *pOldActiveView=GetActiveView();
CClientDC dc(this);
struct IMAGEPARAMENT P;
if (SaveCanvus.IsNull())
return;
GetImageParament(&WorkCanvus, &P);
WorkCanvus.BitBlt(dc, 0, 0, P.nWidth, P.nHeight, 0, 0, SRCCOPY);//位块传输实现显示
}
上面是我写的一段把内存画布的图像显示到窗口的程序,如果应用程序中只有一个文档窗口,那么图片可以显示,问题来了,如果应用程序中新多个文档,再用该程序送显时,每个窗口都会现实这个图片,而我想要的是,只把图像显示到当前窗口激活的那个窗口,,我想是CClientDC dc(this);这一句的问题,括号里面的指针不该是this,而该是当前被激活的文档窗口指针,怎么获得当前文档窗口的指针,大家帮忙看看怎么改。谢过~
[解决办法]
当前活动的文档指针,先通过主框架 GetActiveFrame()/MDIGetActive() 等到 活动的子Frame
然后再通过子Frame的 GetActiveView获取活动视图
[解决办法]
第一句这样获得当前激活view
CMDIFrameWnd *pFrame =
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
// Get the active MDI child window.
CMDIChildWnd *pChild =
(CMDIChildWnd *) pFrame->GetActiveFrame();
// or CMDIChildWnd *pChild = pFrame->MDIGetActive();
// Get the active view attached to the active MDI child
// window.
CView *pOldActiveView= (CView *) pChild->GetActiveView();