CDockablePane阻止关闭

时间:2014-09-03 12:22:46

标签: c++ mfc

我可以隐藏close button CDockablePane并阻止其关闭吗? 我在用Google搜索的标题中找不到CanBeClosed方法。 我想我可以使用PreTranslateMessage过滤WM_CLOSE事件。但我不确定这是否是正确的解决方案。

2 个答案:

答案 0 :(得分:1)

我不确定您拥有的Visual Studio版本,但是,该方法是在AfxBasePane.h中定义和实现的。由于它是虚拟的,您需要覆盖它以删除按钮。关于如何使用该方法的详细信息为here

答案 1 :(得分:1)

我不确定可停靠窗格是否真正关闭,AFAIK仅在按下关闭按钮时隐藏。

注意:WM_CLOSE不是通过PostMessage发送的,而是直接发送到窗口。

有几种方法。

  1. 在派生的CDockablePane中自行处理OnClose(WM_CLOSE)
  2. 调用虚函数OnPressCloseButton。你要覆盖它。
  3. 在您的父框架类(通常是您的CMainFrame)处理AFX_WM_ON_PRESS_CLOSE_BUTTON时,您会收到此消息,其中lParam设置了指向CDockablePane的指针。返回非零以防止关闭。
  4. 我认为方法3.是您应该使用的方法......