看到的书上的用法总是在一个函数里将CPropertySheet实例化。比如:
void CxxxView::OnButtonTable()
{
CMyProperSheet m_tbSheet("Analysis Table");
m_tbSheet.DoModal();
}
是否可以把CPropertySheet在view中实例化,宣言成view的成员。xxxView.h
... ...
CMyProperSheet m_tbSheet;
可是这样的话会出现编译错误,应该怎么办?
void CxxxView::OnButtonTable()
{
CMyProperSheet m_tbSheet("Analysis Table");
m_tbSheet.DoModal();
}
是否可以把CPropertySheet在view中实例化,宣言成view的成员。xxxView.h
... ...
CMyProperSheet m_tbSheet;
可是这样的话会出现编译错误,应该怎么办?
CMyProperSheet::CMyProperSheet()
{
AddPage(&m_page1);
AddPage(&m_page2);
}
: m_DlgSheet("SheetCaption")
{
}
CMyPropertySheet::CMyPropertySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
}
而这些构造函数如果你在CMyView没有明确m_sheet的初始化是不会调用的,它调用的是不带参数的CMyPropertySheet::CMyPropertySheet();
可是,为什么CMyPropertySheet类不自动添加默认构造函数。
而必须收动追加?
CStringView::CStringView()
: m_DlgSheet("SheetCaption")
{
}
这时m_xxsheet的初始化调用的就是向导为我们做好的构造函数(带参数).