mfc/Ribbon的停靠窗关闭后再也找不到的问题解决方法



mfc基于office,Ribbon的停靠窗关闭后再也找不到的问题

网上看到的几种方法:
1去掉停靠窗口右上角关闭按钮,

m_ourPane.SetControlBarStyle(~AFX_CBRS_CLOSE)
去掉停靠窗的关闭按钮后,看似解决了问题,但是在调整停靠窗布局的时候,如果将两个停靠窗放到一起,关闭按钮又显示出来了,一旦关掉又没法弄了,无语啊



2消除停靠位置,存储记忆功能

在CMainFrame中,CreateDocablePane之前,调用CMainFrame::EnableLoadDockState(FALSE);
弊端:仍不能立即打开关掉的停靠窗;可以在下次打开的时候显示停靠窗,但是位置已经不是你调整好的了

我使用的方法:动态的控制停靠窗的显示隐藏,完美解决了这个问题,效果类似于word上的文档结构图
m_MyDockPane.ShowPane(FALSE, FALSE, FALSE);
和m_MyDockPane.ShowPane(TRUE, TRUE, TRUE);
步骤1,建立好停靠窗,在CMainFrame类中定义对象CDock...  m_MyDockablePane
步骤2,Ribbon上添加一个checkBox
步骤3,checkBox添加Command事件和UPDATE_COMMAND_UI事件
步骤4,写入代码
//checkBox的COMMAND事件
void CMainFrame::OnChkDockfind()
{
 if (m_MyDockablePane.IsWindowVisible())
 {
  m_MyDockablePane.ShowPane(FALSE, FALSE, FALSE);
 }
 else
 { 
  m_MyDockablePane.ShowPane(TRUE, TRUE, TRUE);  
 }
}
//checkBox的UPDATE_COMMAND_UI事件
if (m_MyDockablePane.IsWindowVisible())
 {
  pCmdUI->SetCheck(TRUE);
 }
 else
 {
  pCmdUI->SetCheck(FALSE);
 }

如果还有疑问可以联系我:微信号13524191382











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值