void CDialog6View::OnPropertysheet()
{
// TODO: Add your command handler code here
CPropSheet propSheet;
propSheet.DoModal();
}
结果在编译的时候总是提示"no appropriate default constructor available”错误,意思是说“没有可用的合适的构造函数”,开始不懂,上网一查突然明白怎么回事了。原来问题出在构造函数上。
(二)正确代码应为:
void CDialog6View::OnPropertysheet()
{
// TODO: Add your command handler code here
CPropSheet propSheet("属性表单");//属性表单的标题为“属性表单”
propSheet.DoModal();
}
CPropSheet::CPropSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
}
CPropSheet::CPropSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
}
以及CPropSheet函数对应的基类:CPropertySheet的两个构造函数的声明如下:
CPropertySheet(UINT nIDCaption, CWnd* pParentWnd=NULL, UINT iSelectPage=0);
CPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd=NULL, UINT iSelectPage=0);
可以看出,这四个构造函数都带参数,所以当将CPropSheet类的对象定义为无参数的时,就会出现"no appropriate default constructor available”错误了。
联系客服