求助:error C2065: 'CMainFrame' : undeclared identifier

lucykingoo 2009-08-21 01:18:14
代码和错误提示在下面 ,已经加入#include "MainFrm.h",实在不知道问题出在哪里,希望大家能帮帮我,谢谢了


{
//获取文档类指针
CSecondDoc *pDoc=GetDocument();
//获取ImgCenterDib类对象m_dib的指针,访问当前DIB数据
ImgCenterDib *pDib=pDoc->GetPDib();

//只处理彩色图像
if(pDib->m_nBitCount!=24){
::MessageBox(0,"只处理彩色图像",MB_OK,0);
return ;
}

//将pDib中的图像数据作为输入数据,调用带参数的构造函数,
//定义GrayTrans类的对象graytrans
GrayTrabs graytrans(pDib->GetDimensions(),pDib->m_nBitCount,
pDib->m_lpColorTable, pDib->m_pImgData);

//彩色变灰度格式
graytrans.ColorToGray();

//建立一个新视图,显示分割结果
CMainFrame* pFrame = (CMainFrame *)(AfxGetApp()->m_pMainWnd);

//发送新建文件的消息,创建一个新的文档-视图
pFrame->SendMessage(WM_COMMAND, ID_FILE_NEW);

//获取新建视图指针
CSecondView* pView=(CSecondView*)pFrame->MDIGetActive()->GetActiveView();

//获取相关联的新的文档类指针
CSecondDoc* pDocNew=pView->GetDocument();

//获取新文档中的ImgCenterDib类对象指针
ImgCenterDib *dibNew=pDocNew->GetPDib();

//将变换后的输出图像作为新建文档的DIB进行显示
dibNew->ReplaceDib(graytrans.GetDimensions(),graytrans.m_nBitCountOut,
graytrans.m_lpColorTableOut, graytrans.m_pImgDataOut);

//设置滚动窗口
pView->OnInitialUpdate();



//文档数据置脏,提示存盘信息
pDocNew->SetModifiedFlag(TRUE);

//各视图刷新显示
pDocNew->UpdateAllViews(pView);
}


C:\Documents and Settings\Administrator\桌面\second\secondView.cpp(243) : error C2065: 'CMainFrame' : undeclared identifier
C:\Documents and Settings\Administrator\桌面\second\secondView.cpp(243) : error C2065: 'pFrame' : undeclared identifier
C:\Documents and Settings\Administrator\桌面\second\secondView.cpp(243) : error C2059: syntax error : ')'
C:\Documents and Settings\Administrator\桌面\second\secondView.cpp(246) : error C2227: left of '->SendMessageA' must point to class/struct/union
C:\Documents and Settings\Administrator\桌面\second\secondView.cpp(249) : error C2227: left of '->MDIGetActive' must point to class/struct/union
C:\Documents and Settings\Administrator\桌面\second\secondView.cpp(249) : error C2227: left of '->GetActiveView' must point to class/struct/union
Error executing cl.exe.

second.exe - 6 error(s), 0 warning(s)

...全文
709 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucykingoo 2009-08-21
  • 打赏
  • 举报
回复
看来是包含顺序有错误,谢谢各位的帮助!
fishion 2009-08-21
  • 打赏
  • 举报
回复
pFrame->SendMessage(WM_COMMAND, ID_FILE_NEW);换成
AfxGetMainWnd()->PostMessage(WM_COMMAND, ID_FILE_NEW);
MoXiaoRab 2009-08-21
  • 打赏
  • 举报
回复
估计是包含顺序的问题
yuhudie203 2009-08-21
  • 打赏
  • 举报
回复
给你个建议,把mainfrm.h包含在.h文件中 就可以避免这个问题
峰白 2009-08-21
  • 打赏
  • 举报
回复
头文件引用的顺序是很有影响的
fishion 2009-08-21
  • 打赏
  • 举报
回复
看看位置,头文件包含问题
fishion 2009-08-21
  • 打赏
  • 举报
回复
#include "MainFrm.h"
猞猁狲 2009-08-21
  • 打赏
  • 举报
回复
出现这个错误,你肯定没有把#include "MainFrm.h"放到你这些代码段所在的页中,这种事很简单的错误,你应该好好检查代码
yuhudie203 2009-08-21
  • 打赏
  • 举报
回复
#include "mainfrm.h"这个的位置应该放在
#include "stdafx.h"下面
或许还有其他的顺序问题 总值 你换下位置 在看看~~
xylicon 2009-08-21
  • 打赏
  • 举报
回复
加入#include "MainFrm.h" 的文件正确吗?

19,468

社区成员

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

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