VS2008,继承自CDockablePane的类,要响应它右上角那个小叉,就是关闭按钮,要用什么消息映射?响应函数是什么样的?
ON_WM_SHOWWINDOW() 使用这个映射不能满足要求,因为有时候,它只是隐藏了,而不是关闭。
望熟悉CDockablePane(或工具栏也是同样的处理方法?)的朋友点拨一下

解决方案 »

  1.   

    你发送WM_CLOSE消息就关闭了
    ASSERT(m_wndClassView);
    m_wndClassView.PostMessage(WM_CLOSE, 0, 0);
      

  2.   

    我只是想拦截右上角的关闭按钮的消息,然后加入我自己的处理。
    关闭窗体的话主窗体里调ShowPane就可以了(这是一个停靠窗体)
      

  3.   

    先记下,CDockablePane的脾气好像不太好捉摸,也可能是用的太少了的缘故吧
    以后有时间了弄一下试试
      

  4.   

    自己顶一下,貌似用过CDockablePane的人不太多,大家都不熟悉。
    讨厌的东西,关闭按钮没有发出WM_CLOSE消息,它是把你的窗体附加到它的一个管理窗体上了,不知道它的关闭按钮给了我什么消息,自己顶一下,望知道的朋友告诉一下,或谁给个什么提醒,可能是什么消息。或者有绕过的方法也行。我只想在它关闭时清空数据,但隐藏(比如两个这样的窗体在一个管理窗体里,就只有一个显示)时,不清空,所以ON_WM_SHOWWINDOW这个映射不能满足要求
      

  5.   

    我遇到了和你同样的问题,如果使用的是Ribbon风格的功能区的话,点右上角的小差关掉DockablePane之后,就没办法再重新开启DockablePane了,除非去注册表把相应键值都删掉
    摸索了好久都没弄明白如何控制DockablePane的显示和隐藏
      

  6.   

    DockablePane的关闭按钮由其容器类控制的,CPaneFrameWnd* pMiniFrame = pDockablePane->GetParentMiniFrame();在CPaneFrameWnd里进行清理。
      

  7.   

    重载maiframe的CloseMiniFrame()即可