CDockablePane阻止关闭

CDockablePane prevent from closing

本文关键字:CDockablePane      更新时间:2023-10-16

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

我不确定可固定窗格是否真的关闭了,AFAIK它只有在按下关闭按钮时才会隐藏。

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

有几种方法。

  1. 在派生的CDockablePane中自己处理OnClose(WM_CLOSE)
  2. 调用虚拟函数OnPressCloseButton。你可以覆盖它
  3. 在您的父框架类(通常是CMainFrame)句柄AFX_WM_ON_PRESS_CLOSE_BUTTON中,您会收到此消息,其中lParam设置为指向CDockablePane的指针。返回非零以防止关闭

我认为方法3。是你应该使用的。。。

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