我使用对话框画了5个页面,生成一个tab页面,现在希望把它显示在一个view对象下,该如何调用?
以下是我的视图代码:
void CTabTestView::OnInitialUpdate() 
{
CPropertySheet sheet("Line of Tabs  with common CTabCtrl");;CPropertyPage page1(IDD_CHASSISCONF),page2(IDD_PORTCONF),page3(IDD_TOPOCONF),
  page4(IDD_RFC2544CONF),page5(IDD_RFC2889CONF); sheet.AddPage(&page1);
sheet.AddPage(&page2);
sheet.AddPage(&page3);
sheet.AddPage(&page4);
sheet.AddPage(&page5);
sheet.SetActivePage(&page1);
sheet.EnableStackedTabs(FALSE);
sheet.DoModal();}调用DoModal后,通过加载CTabTestView视图,发现sheet页并未显示在我期望视图中,结果单独弹出一个新的对话框显示了。
以下是我的视图加载代码:if (!wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CTabTestView), CSize(0,0), pContext))
return false;
wndSplitter.RecalcLayout();其中wndSplitter是一个spliter控件,希望sheet页显示在分隔符的右边,但是调用时分隔符右边显示出来的是空白的。请问应该调用什么函数才行?我刚开始学习MFC,对图形方面很多对象还不是很清楚,请高手指导。

解决方案 »

  1.   

    以View类为父窗口,调用CPropertySheet::Create(this, WS_CHILD|...)来创建非模态的属性表单
      

  2.   

    VisualEleven,能说详细点儿么?你的意思是单独创建一个CPropertySheet类,然后在View类的OnInitialUpdate中调用CPropertySheet类么?能不能提供一些详细的代码框架,MFC的类对象和成员函数我正在学习阶段,很多不太熟悉。
      

  3.   

    在View中声明一个CPropertySheet成员变量,然后在View的OnCreate()中做AddPage等初始化操作,在需要显示对话框的时候用CPropertySheet::Create()来创建一个非模态的表单。