如题,我并不是要简单的用ShowControlBar来控制他们的可见不可见,而是要控制他们在停靠模式和自动隐藏模式之间进行转换。   
我想用程序代码控制,达到与按下界面上的Auto Hide按钮一样的效果解决立即给分!

解决方案 »

  1.   

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

  2.   

    以前做过一个折叠OUTLOOKBAR(从wnd派生的,子窗口是icon样式的listctrl)的效果, 是用定时器改变窗口大小来达到的.
    点folder按钮时处理listwnd,listctrl此时的效果很像"自动隐藏模式", 点spliterbar时, 处理的是wnd希望对楼主有帮助.
      

  3.   

    SetAutoHideMode()
    UnSetAutoHideMode()
    DockContainer()
    UnDockContainer()这几个方法试一下.
      

  4.   

    多谢jamshooo!
    我现在找到菜单项ID了,如下
    UINT idAutoHide = (UINT) -104;不过我忘记怎么发消息模拟这个菜单项被点击了,好久没写代码了。
    望大家提示一下
      

  5.   

    SendMessage(WM_COMMAND, idAutoHide, 0);
      

  6.   

    记得消息是发送给工具栏所属的父窗口的,应该调用pDockBar->SendMessage(...)
      

  7.   

    问题解决了,多谢大家。好久没来CSDN了,人气还是很旺其实很简单,用CBCGPDockingControlBar的ToggleAutoHide这个方法就可以了我结贴率咋这么低呢,赶紧给大家散分了