错误 156 error C2352: “CXXView::OnPrepareDC”: 非静态成员函数的非法调用

mmfmfc 2014-07-04 03:26:24
void CCCWell::DrawXXPrint(CDC* dc)
{ ..................

CCoreInfNetBrowView::OnPrepareDC(dc);
dc->DPtoLP(&rc);
Graphics graphic1(dc->GetSafeHdc());
USES_CONVERSION;
.....................
}

在CCCWell中要使用dc->DPtoLP(&rc);转换,前面要调用OnPrepareDC(dc);出现错误 156 error C2352: “CXXView::OnPrepareDC”: 非静态成员函数的非法调用 ,请问各位大神,怎么使用OnPrepareDC(dc);
...全文
259 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
l_journey_91 2014-07-07
  • 打赏
  • 举报
回复
CCoreInfNetBrowView::OnPrepareDC(dc); OnPrepareDC(dc); 不是静态函数 只有CCoreInfNetBrowView是当前类的父类 才可以这样调用
rxguoblp 2014-07-06
  • 打赏
  • 举报
回复
引用 3 楼 mimixiao345 的回复:
谢谢回复,这个问题已经明白了,要先定义一个对象,再调用该对象的成员函数,现在还有一个问题,就是我在 CCCWell.cpp不同的函数里都要使用坐标转换,每个函数的作用都是在图纸中画一竖列,但是只有第一竖位置转换正确,后面的都没有转换,这是什么原因?都使用到了下面几句 pView->OnPrepareDC(dc); dc->DPtoLP(&rc); Graphics graphic1(dc->GetSafeHdc()); USES_CONVERSION;
你不会是在每个函数里面都重新实例化一个对象吧?
mmfmfc 2014-07-04
  • 打赏
  • 举报
回复
谢谢回复,这个问题已经明白了,要先定义一个对象,再调用该对象的成员函数,现在还有一个问题,就是我在 CCCWell.cpp不同的函数里都要使用坐标转换,每个函数的作用都是在图纸中画一竖列,但是只有第一竖位置转换正确,后面的都没有转换,这是什么原因?都使用到了下面几句 pView->OnPrepareDC(dc); dc->DPtoLP(&rc); Graphics graphic1(dc->GetSafeHdc()); USES_CONVERSION;
微型蚂蚁 2014-07-04
  • 打赏
  • 举报
回复
CCoreInfNetBrowView要写成CCCWell类的父类名称,也就是要调用属于自己或继承来的方法
shen_wei 2014-07-04
  • 打赏
  • 举报
回复
void CMyView::OnPrepareDC (CDC* pDC, CPrintInfo* pInfo)
{
   CView::OnPrepareDC(pDC, pInfo);

   // If we are printing, set the mapmode and the window
   // extent properly, then set viewport extent. Use the
   // SetViewportOrg member function in the CDC class to
   // move the viewport origin to the center of the view.

   if(pDC->IsPrinting()) // Is the DC a printer DC.
   {
      CRect rect;
      GetClientRect (&rect);

      pDC->SetMapMode(MM_ISOTROPIC);
      CSize ptOldWinExt = pDC->SetWindowExt(1000, 1000);
      ASSERT(ptOldWinExt.cx != 0 && ptOldWinExt.cy != 0);
      CSize ptOldViewportExt = pDC->SetViewportExt(rect.Width(), -rect.Height());
      ASSERT(ptOldViewportExt.cx != 0 && ptOldViewportExt.cy != 0);
      CPoint ptOldOrigin = pDC->SetViewportOrg(rect.Width()/2, rect.Height()/2);
   }
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧