正如标题所建议的,我有一个
CMDIChildWndEx
应用程序(在VS2017上,Windows 10 x64)。上
ChildFrame
,
CMyView
创建:(a)
CMFCTabCtrl
(ID=1),2
CView
派生类:比方说(b)
CViewDerivedA
对象(id=2)和(c)
CViewDerivedB
对象(id=3)。A-C的父项是
视图类
.
视图类
添加
CDerivedViewA
对象作为tab-0,并且
CVIEWDERIVEDB公司
对象为表1。
塞维韦达
处理菜单栏的菜单。但是,当我打开MDI文档时,菜单不会启用,直到切换到选项卡1并返回到选项卡0。我尝试了下面的代码,但是
SetFocus()
不起作用:
void CMyChildFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
{
CMDIChildWndEx::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);
if (bActivate)
{
CMFCTabCtrl *pTabCtrl = (CMFCTabCtrl*) GetDlgItem(1);
if (pTabCtrl->GetActiveTab() == 0)
{
pTabCtrl->SetActiveTab(1);
pTabCtrl->SetActiveTab(0);
}
}
}
无论如何,在我看来,这个解决方案并不是“干净的”,而是“变通的办法”。>>>>我认为正确的方法是告诉
pTabCtrl
(ID=1)到
StFixCube()
在活动选项卡上,当我
SetActiveTab()
下一步。怎样才能把它做好?