为什么会是这个错误'GetImage' : is not a member of 'CTestCximageDoc'???

purewqk 2010-09-28 04:10:27
这是代码:
void CTestCximageView::OnDraw(CDC* pDC)
{
//CTestCximageApp* myApp=(CTestCximageApp *)AfxGetApp();
CTestCximageDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here


BOOL bPrinting = pDC->IsPrinting();

CMemDC* pMemDC = NULL;
if (!bPrinting) pDC = pMemDC = new CMemDC(pDC);

if (!bPrinting && m_brHatch.m_hObject){
CRect rect;
GetClientRect(&rect);
rect.right = max(rect.right , m_totalDev.cx);
rect.bottom = max(rect.bottom, m_totalDev.cy);
m_brHatch.UnrealizeObject();
CPoint pt(0, 0);
pDC->LPtoDP(&pt);
pt = pDC->SetBrushOrg(pt.x % 8, pt.y % 8);
CBrush* old = pDC->SelectObject(&m_brHatch);
pDC->FillRect(&rect, &m_brHatch);
pDC->SelectObject(old);
}

CxImage* ima = pDoc->GetImage();
if (ima) {
if (bPrinting) {
// get size of printer page (in pixels)
int cxPage = pDC->GetDeviceCaps(HORZRES);
int cyPage = pDC->GetDeviceCaps(VERTRES);
//int dcbpp = pDC->GetDeviceCaps(BITSPIXEL);
//int dcnc = pDC->GetDeviceCaps(NUMCOLORS);
//int dcp = pDC->GetDeviceCaps(PLANES);
// get printer pixels per inch
int cxInch = pDC->GetDeviceCaps(LOGPIXELSX);
int cyInch = pDC->GetDeviceCaps(LOGPIXELSY);
// Best Fit case: create a rectangle which preserves the aspect ratio
int cx = ima->GetXDPI() ? (ima->GetWidth()*cxInch)/ima->GetXDPI():ima->GetWidth()*cxInch/96;
int cy = ima->GetYDPI() ? (ima->GetHeight()*cyInch)/ima->GetYDPI():ima->GetHeight()*cyInch/96;
// print it!
/*HDC TmpDC=CreateCompatibleDC(pDC->GetSafeHdc());
HBITMAP bm =::CreateCompatibleBitmap(pDC->GetSafeHdc(), cx, cy);
HBITMAP oldbm = (HBITMAP)::SelectObject(TmpDC,bm);
BitBlt(TmpDC,0,0,cx,cy,0,0,0,WHITENESS);
ima->Draw(TmpDC,CRect(0,0,cx,cy));
BitBlt(pDC->GetSafeHdc(),100,100,cx,cy,TmpDC,0,0,SRCCOPY);
DeleteObject(SelectObject(TmpDC,oldbm));
DeleteDC(TmpDC);*/
CxImage tmp;
tmp.Copy(*ima);
RGBQUAD c={255,255,255,0};
if (tmp.GetTransIndex()>=0) tmp.SetPaletteColor((BYTE)tmp.GetTransIndex(),c);
tmp.SetTransColor(c);
tmp.AlphaStrip();
tmp.Stretch(pDC->GetSafeHdc(), CRect(100,100,cx,cy));
} else {
if (pDoc->GetStretchMode()) {
CRect rect;
GetClientRect(&rect);
ima->Draw(pDC->GetSafeHdc(), rect,0,pDoc->GetSmoothMode()!=0);
} else {
float zoom=pDoc->GetZoomFactor();
if (zoom==1)
ima->Draw(pDC->GetSafeHdc());
else
ima->Draw(pDC->GetSafeHdc(),
CRect(0,0,(int)(ima->GetWidth()*zoom),(int)(ima->GetHeight()*zoom)),
0,pDoc->GetSmoothMode()!=0);
}

if ( m_tracker.m_rect.Width()>0 && m_tracker.m_rect.Height()>0 )
m_tracker.Draw(pDC);
}
}

delete pMemDC;
}

红色标记的地方都有错误,为什么呢?麻烦高手指教下小弟...
'GetImage' : is not a member of 'CTestCximageDoc'
'GetStretchMode' : is not a member of 'CTestCximageDoc'
error C2039: 'GetSmoothMode' : is not a member of 'CTestCximageDoc'
error C2039: 'GetZoomFactor' : is not a member of 'CTestCximageDoc'
...全文
198 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2010-09-28
  • 打赏
  • 举报
回复
你的CTestCximageDoc类中提供了GetImage这个函数了?
Ionstorm2 2010-09-28
  • 打赏
  • 举报
回复
你CTestCximageDoc是不是继承了错误的类啊?还是别人在头文件里另外声明了这些函数而你没有啊?
purewqk 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ionstorm2 的回复:]
提示不是写得很清楚了么?以上这些有问题的函数都不是CTestCximageDoc的成员啊,所以无法调用啊
[/Quote]
但是我看别人的程序都是可以用这几个函数的呀...
Ionstorm2 2010-09-28
  • 打赏
  • 举报
回复
提示不是写得很清楚了么?以上这些有问题的函数都不是CTestCximageDoc的成员啊,所以无法调用啊

19,468

社区成员

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

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