目的:MFC主对话框下选定一部分区域,要在这个区域上实现每个按钮对应一个画面
思想:1、先确定区域,可以采用static text 控件
2、将这部分区域作为容器,存放不同的界面,可以采用Cpropertysheet,添加page方法
实现:由于Cpropertysheet类所实现的是带有tab模式的界面切换,故重写Cpropertysheet类,CMainSheet:public Cpropertysheet,只需重写OnInitDialog函数
BOOL CMainSheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
CTabCtrl* pTab = GetTabControl ();
ASSERT_VALID (pTab);
pTab->ModifyStyle(TCS_MULTILINE, TCS_SINGLELINE);
CRect rectTabItem;
pTab->GetItemRect (0, rectTabItem);
const int nVertMargin = 5; //可以自己定制
const int nHorzMargin = 5;
const int nTabsHeight = rectTabItem.Height () + nVertMargin;
CRect rectClient;
GetClientRect (rectClient);
pTab->MoveWindow (m_nBarWidth-5, -nTabsHeight, rectClient.right-5, rectCl

本文介绍如何在MFC主对话框的特定区域内实现场景切换。通过使用Cpropertysheet作为容器,添加CpropertyPage并重写OnInitDialog函数,实现了无tab模式的界面切换。在主界面初始化时设置Sheet和页面,然后为按钮添加单击事件,通过SetActivePage方法切换界面。
最低0.47元/天 解锁文章
824

被折叠的 条评论
为什么被折叠?



