然后,我自己动态创建了一个CTabCtrl 类,放在了CmyFormView上
以下代码从略
//FixTabCtrl.h 中
class CFixTabCtrl: public CTabCtrl{
void Func1();
...
}
// CFixTabCtrl.cpp 中
void CFixTabCtrl::Func1()
{ ((CmyFormView*)GetParent())->GetTree(); }
//在CmyFomView 中
# include "FixTabCtrl"//头文件中加入这一句
class CmyFormView: public CFormView
{
CFixTabCtrl m_Tab;
CTreeCtrl m_wnd1;
CTreeCtrl * GetTree(){ return &m_wnd1 }
}
编译就说不认识CmyFormView; 所以我又给 在CFixTabCtrl.h 中加入
#include“myFormView.h”和Class CmyFormView;的声明结果错得更多,
全是说系统生成的代码有错。
然后我又尝试 将CFixTabCtrl m_Tab; 改为CFixTabCtrl* m_Tab;
仍然不行,请问下大侠们, 我这种情况怎么解决?
我只是想在子控件的得到CmyFormView()的指针,并且对他进行操作。
18 个解决方案
#1
在CFixTabCtrl.h 中加入
#include“myFormView.h”就可以啦
#include“myFormView.h”就可以啦
#2
大哥,你看清楚啊,我都试过了的根本不行啊。我的问题是简单,但是我不可能犯这么白痴的错误吧。
#3
你在CFixTabCtrl.CPP 中加入 #include“myFormView.h”;
然后要用到myFormView再定义它的指针
然后要用到myFormView再定义它的指针
#4
我这些都是尝试过了的,还是不行啊,崩溃中。那你看有其他方法达到我的目的么?
#5
把#include "FixTabCtrl"加到myFormView.h中;
再把#include“myFormView.h”加到FixTabCtrl.CPP
应该不会有问题的啊,是不是你在FixTabCtrl.h中定义了myFormView类的变量或指针
另外你的程序编译报的什么错误
再把#include“myFormView.h”加到FixTabCtrl.CPP
应该不会有问题的啊,是不是你在FixTabCtrl.h中定义了myFormView类的变量或指针
另外你的程序编译报的什么错误
#6
#include“myFormView.h”加到FixTabCtrl.CPP
FixTabCtrl.h中定义一个CView指针,把myFormView的指针赋给它
在FixTabCtrl.CPP中强制转换为myFormView*类型在使用
FixTabCtrl.h中定义一个CView指针,把myFormView的指针赋给它
在FixTabCtrl.CPP中强制转换为myFormView*类型在使用
#7
没有, 我没有在FixTabCtrl 中定义myFormView的变量和指针,只是在函数中用了下。
程序的错误很奇怪
除了一大堆识别不了的错误,还有说CmyFormView::GetDocument的错误,但是我要是吧相应的代码注释掉,又完全正确。真的郁闷的很
程序的错误很奇怪
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C2143: syntax error : missing ';' before '*'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : warning C4183: 'GetDocument': missing return type; assumed to be a member function returning 'int'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\fixtabctrl.cpp(35) : error C2440: 'initializing' : cannot convert from 'CWnd *' to 'CmyFormView *'
1> Cast from base to derived requires dynamic_cast or static_cast
1>myFormView.cpp
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C2143: syntax error : missing ';' before '*'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : warning C4183: 'GetDocument': missing return type; assumed to be a member function returning 'int'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.cpp(125) : error C2556: 'CmyFormDoc *CmyFormView::GetDocument(void) const' : overloaded function differs only by return type from 'int *CmyFormView::GetDocument(void) const'
1> c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : see declaration of 'CmyFormView::GetDocument'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.cpp(125) : error C2371: 'CmyFormView::GetDocument' : redefinition; different basic types
1> c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : see declaration of 'CmyFormView::GetDocument'
除了一大堆识别不了的错误,还有说CmyFormView::GetDocument的错误,但是我要是吧相应的代码注释掉,又完全正确。真的郁闷的很
#8
尝试这样的做法:
1.在CFixTabCtrl.capp 中加入 #include“myFormView.h”;不行的话,看下面一种方法。
2.将对象的定义全放入头文件中,再在头文件中加#include“myFormView.h”;
你的问题 我以前也遇到过,多试试可能的错误,就可以了
1.在CFixTabCtrl.capp 中加入 #include“myFormView.h”;不行的话,看下面一种方法。
2.将对象的定义全放入头文件中,再在头文件中加#include“myFormView.h”;
你的问题 我以前也遇到过,多试试可能的错误,就可以了
#9
可能是你使用CmyFormView的GetDocument有问题吧,你那段代码呢?
#10
我根本没有动GetDocument,我没有用到文档,所以就没有改系统的代码,然后我要是不在我的
FixTabCtrl.cpp 中加入 myFormView.h 的话,并且不使用CmyForm 类的话,程序就完全正确。
另外6楼的方法也不正确。
FixTabCtrl.cpp 中加入 myFormView.h 的话,并且不使用CmyForm 类的话,程序就完全正确。
另外6楼的方法也不正确。
#11
实在没招就用排除法试试
在最小环境中一个一个增加代码,直到错误出现
在最大环境中一个一个减少代码,直到错误出现
在最小环境中一个一个增加代码,直到错误出现
在最大环境中一个一个减少代码,直到错误出现
#12
不行啊,跪求高手恩泽!!!!!
#13
不知道这样行不行啊???
CFixTabCtrl.h 中加入 Class CmyFormView
CFixTabCtrl.cpp 中加入 #include“myFormView.h”
CFixTabCtrl.h 中加入 Class CmyFormView
CFixTabCtrl.cpp 中加入 #include“myFormView.h”
#14
CFixTabCtrl.h 中加入 Class CmyFormView 是加不了,编译报错!
#15
马甲啊???
什么错啊???
#16
我找到方法了! 终于编译不报错了!先说说方法。一会验证运行有没有问题;
CFixTabCtrl.h 中加入 Class CmyFormView
CFixTabCtrl.cpp 中加入 #include“myFormView.h”
正如13楼说所的方法一样 ,但是还是要修改一个地方,就是将MFC自动生成的代码里面的
myFormView.cpp里面的头文件包含 #include "myFormDoc.h"删除,并将这一句添加到myFormView.h
里面! 现在就没有报错了
CFixTabCtrl.h 中加入 Class CmyFormView
CFixTabCtrl.cpp 中加入 #include“myFormView.h”
正如13楼说所的方法一样 ,但是还是要修改一个地方,就是将MFC自动生成的代码里面的
myFormView.cpp里面的头文件包含 #include "myFormDoc.h"删除,并将这一句添加到myFormView.h
里面! 现在就没有报错了
#17
虽然结贴,还是希望有知道原因的高手,讲一下原因。谢
#18
这明显是头文件互相包含的问题....
#1
在CFixTabCtrl.h 中加入
#include“myFormView.h”就可以啦
#include“myFormView.h”就可以啦
#2
大哥,你看清楚啊,我都试过了的根本不行啊。我的问题是简单,但是我不可能犯这么白痴的错误吧。
#3
你在CFixTabCtrl.CPP 中加入 #include“myFormView.h”;
然后要用到myFormView再定义它的指针
然后要用到myFormView再定义它的指针
#4
我这些都是尝试过了的,还是不行啊,崩溃中。那你看有其他方法达到我的目的么?
#5
把#include "FixTabCtrl"加到myFormView.h中;
再把#include“myFormView.h”加到FixTabCtrl.CPP
应该不会有问题的啊,是不是你在FixTabCtrl.h中定义了myFormView类的变量或指针
另外你的程序编译报的什么错误
再把#include“myFormView.h”加到FixTabCtrl.CPP
应该不会有问题的啊,是不是你在FixTabCtrl.h中定义了myFormView类的变量或指针
另外你的程序编译报的什么错误
#6
#include“myFormView.h”加到FixTabCtrl.CPP
FixTabCtrl.h中定义一个CView指针,把myFormView的指针赋给它
在FixTabCtrl.CPP中强制转换为myFormView*类型在使用
FixTabCtrl.h中定义一个CView指针,把myFormView的指针赋给它
在FixTabCtrl.CPP中强制转换为myFormView*类型在使用
#7
没有, 我没有在FixTabCtrl 中定义myFormView的变量和指针,只是在函数中用了下。
程序的错误很奇怪
除了一大堆识别不了的错误,还有说CmyFormView::GetDocument的错误,但是我要是吧相应的代码注释掉,又完全正确。真的郁闷的很
程序的错误很奇怪
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C2143: syntax error : missing ';' before '*'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : warning C4183: 'GetDocument': missing return type; assumed to be a member function returning 'int'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\fixtabctrl.cpp(35) : error C2440: 'initializing' : cannot convert from 'CWnd *' to 'CmyFormView *'
1> Cast from base to derived requires dynamic_cast or static_cast
1>myFormView.cpp
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C2143: syntax error : missing ';' before '*'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : warning C4183: 'GetDocument': missing return type; assumed to be a member function returning 'int'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.cpp(125) : error C2556: 'CmyFormDoc *CmyFormView::GetDocument(void) const' : overloaded function differs only by return type from 'int *CmyFormView::GetDocument(void) const'
1> c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : see declaration of 'CmyFormView::GetDocument'
1>c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.cpp(125) : error C2371: 'CmyFormView::GetDocument' : redefinition; different basic types
1> c:\users\haoer\documents\visual studio 2008\projects\mfc\myform\myform\myformview.h(19) : see declaration of 'CmyFormView::GetDocument'
除了一大堆识别不了的错误,还有说CmyFormView::GetDocument的错误,但是我要是吧相应的代码注释掉,又完全正确。真的郁闷的很
#8
尝试这样的做法:
1.在CFixTabCtrl.capp 中加入 #include“myFormView.h”;不行的话,看下面一种方法。
2.将对象的定义全放入头文件中,再在头文件中加#include“myFormView.h”;
你的问题 我以前也遇到过,多试试可能的错误,就可以了
1.在CFixTabCtrl.capp 中加入 #include“myFormView.h”;不行的话,看下面一种方法。
2.将对象的定义全放入头文件中,再在头文件中加#include“myFormView.h”;
你的问题 我以前也遇到过,多试试可能的错误,就可以了
#9
可能是你使用CmyFormView的GetDocument有问题吧,你那段代码呢?
#10
我根本没有动GetDocument,我没有用到文档,所以就没有改系统的代码,然后我要是不在我的
FixTabCtrl.cpp 中加入 myFormView.h 的话,并且不使用CmyForm 类的话,程序就完全正确。
另外6楼的方法也不正确。
FixTabCtrl.cpp 中加入 myFormView.h 的话,并且不使用CmyForm 类的话,程序就完全正确。
另外6楼的方法也不正确。
#11
实在没招就用排除法试试
在最小环境中一个一个增加代码,直到错误出现
在最大环境中一个一个减少代码,直到错误出现
在最小环境中一个一个增加代码,直到错误出现
在最大环境中一个一个减少代码,直到错误出现
#12
不行啊,跪求高手恩泽!!!!!
#13
不知道这样行不行啊???
CFixTabCtrl.h 中加入 Class CmyFormView
CFixTabCtrl.cpp 中加入 #include“myFormView.h”
CFixTabCtrl.h 中加入 Class CmyFormView
CFixTabCtrl.cpp 中加入 #include“myFormView.h”
#14
CFixTabCtrl.h 中加入 Class CmyFormView 是加不了,编译报错!
#15
马甲啊???
什么错啊???
#16
我找到方法了! 终于编译不报错了!先说说方法。一会验证运行有没有问题;
CFixTabCtrl.h 中加入 Class CmyFormView
CFixTabCtrl.cpp 中加入 #include“myFormView.h”
正如13楼说所的方法一样 ,但是还是要修改一个地方,就是将MFC自动生成的代码里面的
myFormView.cpp里面的头文件包含 #include "myFormDoc.h"删除,并将这一句添加到myFormView.h
里面! 现在就没有报错了
CFixTabCtrl.h 中加入 Class CmyFormView
CFixTabCtrl.cpp 中加入 #include“myFormView.h”
正如13楼说所的方法一样 ,但是还是要修改一个地方,就是将MFC自动生成的代码里面的
myFormView.cpp里面的头文件包含 #include "myFormDoc.h"删除,并将这一句添加到myFormView.h
里面! 现在就没有报错了
#17
虽然结贴,还是希望有知道原因的高手,讲一下原因。谢
#18
这明显是头文件互相包含的问题....