高分:BCG的问题:带有AutoHide属性的CBCGPDockingControlBar,如何用程序控制它的隐藏和显示?

hwonzor 2009-03-08 10:16:18
如题,我并不是要简单的用ShowControlBar来控制他们的可见不可见,而是要控制他们在停靠模式和自动隐藏模式之间进行转换。
我想用程序代码控制,达到与按下界面上的Auto Hide按钮一样的效果

解决立即给分!
...全文
368 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwonzor 2009-03-10
  • 打赏
  • 举报
回复
问题解决了,多谢大家。好久没来CSDN了,人气还是很旺

其实很简单,用CBCGPDockingControlBar的ToggleAutoHide这个方法就可以了

我结贴率咋这么低呢,赶紧给大家散分了
leechrockgames 2009-03-09
  • 打赏
  • 举报
回复
up
showxier 2009-03-09
  • 打赏
  • 举报
回复
以前做过一个折叠OUTLOOKBAR(从wnd派生的,子窗口是icon样式的listctrl)的效果, 是用定时器改变窗口大小来达到的.
点folder按钮时处理listwnd,listctrl此时的效果很像"自动隐藏模式", 点spliterbar时, 处理的是wnd

希望对楼主有帮助.
jameshooo 2009-03-09
  • 打赏
  • 举报
回复
记得消息是发送给工具栏所属的父窗口的,应该调用pDockBar->SendMessage(...)
jameshooo 2009-03-09
  • 打赏
  • 举报
回复
SendMessage(WM_COMMAND, idAutoHide, 0);
hwonzor 2009-03-09
  • 打赏
  • 举报
回复
多谢jamshooo!
我现在找到菜单项ID了,如下
UINT idAutoHide = (UINT) -104;

不过我忘记怎么发消息模拟这个菜单项被点击了,好久没写代码了。
望大家提示一下
  • 打赏
  • 举报
回复
用过这种停靠栏,但没试过你说的方法
hwonzor 2009-03-09
  • 打赏
  • 举报
回复
同学们,我再研究一下,弄好了散分
raymonzhao 2009-03-09
  • 打赏
  • 举报
回复
SetAutoHideMode()
UnSetAutoHideMode()
DockContainer()
UnDockContainer()

这几个方法试一下.
jameshooo 2009-03-08
  • 打赏
  • 举报
回复
手头没有bcg,无法告诉你准确答案,但可以提供解决方法。停靠模式和隐藏模式是一个工具栏按钮激发的,它肯定要处理命令消息,这个消息肯定是一个常量,而且类内部肯定维持着一个状态标记,可能是一个独立变量,也可能是一个状态变量中的一个位。BCG最大的好处就是提供全部的源码,所以有两种途径去寻找,一种是根据命令消息处理函数来追溯,一种是直接在类里面寻找成员变量(一般变量名称或者宏名称能够识别含义),只要找到了就容易控制。如果变量是受保护的或者私有的,一般会提供方法来设置,比如SetAutoHide()或者SetStyle()之类的。这个问题应该不难,因为寻找源码相对比较容易。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧