mfc中dialog如何基于系统风格_VC++ MFC SDI/MDI Ribbon程序的停靠窗格被关闭后如何再次显示...

本文详细介绍了VC++ MFC应用程序中关于停靠窗格的常见问题及解决方案,包括如何隐藏和显示停靠窗格,消除停靠位置的记忆功能,设置停靠位置,禁用关闭按钮以及禁止用户拖动。提供了关键代码片段和相关资源链接,帮助开发者更好地理解和控制MFC应用中的停靠窗格行为。
摘要由CSDN通过智能技术生成

解答:消除停靠位置,存储记忆功能:在CMainFrame中,CreateDocablePane之前,调用CMainFrame::EnableLoadDockState(FALSE);即可。

如果MFC程序不是Ribbon风格的,窗体界面一般如下图所示:

973528da8e1f89b84c2e72d9e6a0ac8f.png

可以通过在View视图菜单里添加如下代码实现隐藏的窗格的再次显示:

CDockablePane::ShowPane();

问题一:可停靠窗口在左上角显示 没有停靠到指定位置

这几天在调Docablepane 可停靠窗口VC++ 2010,遇到这个如题问题。

目前接触到的原因:

1、DockPane(&m_yourPane);//未调用,或未执行

2、//并且注意在m_yourPane.Create( 中创建风格处指定 | WS_VISIBLE);

内部运行原理原因没分析出来,估计与Cpane的SetWindowPos 函数处调用有问题。感兴趣可调试Mfc源代码

问题二:消除停靠位置,存储记忆功能

在CMainFrame中,CreateDocablePane之前,调用CMainFrame::EnableLoadDockState(FALSE);

问题三:去掉停靠窗口右上角关闭按钮,

m_ourPane.SetControlBarStyle(~AFX_CBRS_CLOSE)

问题四:如何指定可停靠位置。

1、在创建时,风格参数中 CBRS_BOTTOM \CBRS_LEFT ... 等指定初始显示的位置

2、创建后可调用   m_pane.EnableDocking(CBRS_ALIGN_ANY/*任意位置*/); CBRS_ALIGN_LEFT,  BOTTOM 等 指定可停靠在Frame中的位置

注意,当指定dcoapane的控制条某些属性(SetControlBarStyle(AFX_CBRS_RESIZE))后,用户则无法拖动该可停靠窗口

问题五:如何禁止用户拖动可停靠窗口

m_pane.SetControlBarStyle(AFX_CBRS_RESIZE);

问题六:如何排版多个可停靠窗口

请参考:http://blog.csdn.net/kikaylee/article/details/8936953

如何创建多功能停靠窗口,以及如和销毁可停靠窗口,以及使用参见:http://www.codeproject.com/Articles/493218/Understanding-CDockablePane

个人觉得普通显示关闭,没必要像codeProject这位,每次都去创建销毁可停靠窗口来进行显示或隐藏,建议使用成员函数的方式,进行m_pane.ShowWindow(SW_HIDE /*SW_SHOW*/)及可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值