MFC下界面切换

本文介绍如何在MFC主对话框的特定区域内实现场景切换。通过使用Cpropertysheet作为容器,添加CpropertyPage并重写OnInitDialog函数,实现了无tab模式的界面切换。在主界面初始化时设置Sheet和页面,然后为按钮添加单击事件,通过SetActivePage方法切换界面。
摘要由CSDN通过智能技术生成

    目的: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, rectClient.bo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值