我自己从CFormView类派生一个新类,以下是它的代码:
class CMyFormView : public CFormView
{
DECLARE_DYNAMIC(CMyFormView)
protected:
CMyFormView(LPCTSTR lpszTemplateName){};/*报错no appropriate default constructor available*/
CMyFormView(UINT nIDTemplate){}; /*报错no appropriate default constructor available*/
virtual ~CMyFormView() {};
public:
void SetScaleToFitSize(SIZE sizeTotal);
void SetScrollSizes(int nMapMode, SIZE sizeTotal,
SIZE& sizePage,
SIZE& sizeLine );
};
不晓得哪位大哥能帮我解决一下,不胜感激,解决马上给分!
class CMyFormView : public CFormView
{
DECLARE_DYNAMIC(CMyFormView)
protected:
CMyFormView(LPCTSTR lpszTemplateName){};/*报错no appropriate default constructor available*/
CMyFormView(UINT nIDTemplate){}; /*报错no appropriate default constructor available*/
virtual ~CMyFormView() {};
public:
void SetScaleToFitSize(SIZE sizeTotal);
void SetScrollSizes(int nMapMode, SIZE sizeTotal,
SIZE& sizePage,
SIZE& sizeLine );
};
不晓得哪位大哥能帮我解决一下,不胜感激,解决马上给分!
CMyFormView(LPCTSTR lpszTemplateName){};/*报错no appropriate default protected -> public : 试试
{
DECLARE_DYNAMIC(CMyFormView)
protected:
CMyFormView(){};/***** 加一个这个试试. *****/
CMyFormView(LPCTSTR lpszTemplateName){};/*报错no appropriate default constructor available*/
CMyFormView(UINT nIDTemplate){}; /*报错no appropriate default constructor available*/
virtual ~CMyFormView() {};
public:
void SetScaleToFitSize(SIZE sizeTotal);
void SetScrollSizes(int nMapMode, SIZE sizeTotal,
SIZE& sizePage,
SIZE& sizeLine );
};
DECLARE_DYNCREATE(CMyFormView)
把DEFAULT CONSTRUCTOR放在动态创建的宏前面.
winehero(God helps those who help themselves.) 的好象和no appropriate default constructor available错误没有关系吧,改了一样是那么多错误!
我已经改成了public:但是,还是有这个问题出现!
DECLARE_DYNCREATE(CMyFormView)
把DEFAULT CONSTRUCTOR放在动态创建的宏前面.
这样也不行吗?
:CFormView(CMyFormView::IDD)
error C2512: 'CFormView' : no appropriate default constructor available
对指定的类、结构或联合没有可用的默认构造函数。如果没有提供用户定义的构造函数,则编译器提供默认构造函数。如果提供采用非 void 参数的构造函数,则必须也提供默认构造函数。默认构造函数可以是具有所有参数的默认值的构造函数。
下面的示例生成 C2512:
// C2512.cpp
class B {
public:
B (char *);
/* add the folling constructor
B() {
};
*/
};int main() {
B b; // C2512
}
还是不行,你那里调试可以吗??
加了 :CFormView(CMyFormView::IDD)之后,报错是:error C2039: 'IDD' : is not a member of 'CMyFormView'
我的目的是我的CMyFormView类取代CFormView类,来创建窗体,也就是说现在没有IDD之类的参数,但是分析CFormView的构造函数发现,它必须要有一个参数!不知怎么弄??
class CMyFormView : public CFormView
{
DECLARE_DYNAMIC(CMyFormView)
protected:
CMyFormView(LPCTSTR lpszTemplateName):CFormView(lpszTemplateName){};/*看看我给你改的*/
CMyFormView(UINT nIDTemplate)):CFormView(nIDTemplate){}; /*看看我给你改的*/
virtual ~CMyFormView() {};
public:
void SetScaleToFitSize(SIZE sizeTotal);
void SetScrollSizes(int nMapMode, SIZE sizeTotal,
SIZE& sizePage,
SIZE& sizeLine );
};