首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

大家帮忙看看,多文档应用程序,新建多个文档后,怎么获得当前被激活的文档指针

2012-03-26 
大家帮忙看看,多文档应用程序,新建多个文档后,如何获得当前被激活的文档指针。void CghghView::WorkCanvusT

大家帮忙看看,多文档应用程序,新建多个文档后,如何获得当前被激活的文档指针。
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(); 

热点排行