我的客户程序是一个画图程序,现在我要在ATL中实现的功能是写一个函数,用来获取客户程序中的当前活动视图,并将其内容存为bmp格式的文件,我在客户程序中直接写下面的代码成功了
CMDIFrameWnd *pFrame =
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd; CMDIChildWnd *pChild =
(CMDIChildWnd *) pFrame->GetActiveFrame(); CScribbleView *pView = (CScribbleView *) pChild->GetActiveView();
但是将代码放到ATL服务程序中就失败了(编译通过,但客户程序运行时出错),我改成下面的代码倒是可以获得当前的窗口并保存为bmp,但我要获得的是视图啊,怎么可以获得窗口但不能获得视图呢?
CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp();
CMDIChildWnd *pChild = (CMDIChildWnd*)pFrame->MDIGetActive(); CView *pView = (CView*)pChild->GetActiveWindow();
CMDIFrameWnd *pFrame =
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd; CMDIChildWnd *pChild =
(CMDIChildWnd *) pFrame->GetActiveFrame(); CScribbleView *pView = (CScribbleView *) pChild->GetActiveView();
但是将代码放到ATL服务程序中就失败了(编译通过,但客户程序运行时出错),我改成下面的代码倒是可以获得当前的窗口并保存为bmp,但我要获得的是视图啊,怎么可以获得窗口但不能获得视图呢?
CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp();
CMDIChildWnd *pChild = (CMDIChildWnd*)pFrame->MDIGetActive(); CView *pView = (CView*)pChild->GetActiveWindow();
另外感觉你是使用MFC开发服务程序。