在静态拆分窗口实现不同CFormView类的切换

本文介绍了如何在静态拆分窗口中实现不同CFormView类的切换。通过创建CTreeView,重载相关成员函数,特别是`SetActivePage`函数来切换视图。在遇到运行时错误时,发现问题出在CFormView与CListView的区别上。经过调试发现,对话框模板需要特定属性(Child风格,去除Title Bar和System Menu)才能作为CFormView的关联对话框,修正这些设置后,程序能正确运行。
摘要由CSDN通过智能技术生成

我的小软件的主界面是这样的

左边是界面导航条,选择左边的选项,右边的界面会切换

左边用一个CTreeView实现

右边用不同的CFormView实现

如图:

 

 

 

(图1)

 

(图2)

 

实现这个功能,我们首先要静态拆分窗口,这个前面已经介绍过了

插入一个CMyTreeView类

重载下面三个成员函数:

 

void  CMyTreeView::OnInitialUpdate() 
{
    CTreeView::OnInitialUpdate();

    
//获得TreeView的CTreeCtrl控件句柄
    m_hTree = &GetTreeCtrl();    

    HTREEITEM hRoot 
= m_hTree->InsertItem(_T("界面选择"), TVI_ROOT);

    HTREEITEM hNormal 
= m_hTree->InsertItem(_T("日历模式"), hRoot);
    HTREEITEM hdata 
= m_hTree->InsertItem(_T("记录模式"), hRoot);
    HTREEITEM hStatistic 
= m_hTree->InsertItem(_T("统计模式"), hRoot);

    CTime time 
= CTime::GetCurrentTime();
    CString currentMonth, firstMonth, secondMonth;
    currentMonth.Format(
"%d月记录",time.GetMonth());
    firstMonth.Format(
"%d月记录",(time.GetMonth()-1)%12);
    secondMonth.Format(
"%d月记录",(time.GetMonth()-2)%12);
    m_hTree
->InsertItem(currentMonth, hdata);
    m_hTree
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值