2014-09-03 178 views
0

我可以從CDockablePane隱藏close button並阻止它關閉嗎? 我在我剛剛搜索的標題中找不到CanBeClosed方法。 我想我可以用PreTranslateMessage來過濾WM_CLOSE事件。但我不確定這是否是正確的解決方案。CDockablePane防止關閉

回答

1

我不確定可停靠窗格是否真的關閉,AFAIK只有在關閉按鈕被按下時纔會隱藏。

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

有幾種方法。

  1. 手柄的OnClose(WM_CLOSE)自己在派生CDockablePane
  2. 虛函數OnPressCloseButton被調用。你可以覆蓋它。
  3. 在您的父框架類(通常是您的CMainFrame)中處理AFX_WM_ON_PRESS_CLOSE_BUTTON時,您將收到帶有指向CDockablePane的lParam集的消息。返回非零以防止關閉。

我想方法3.是你應該使用的方法...

1

我不確定你有什麼版本的Visual Studio,但是,該方法是在AfxBasePane.h中定義和實現的。由於它是虛擬的,您需要覆蓋它以刪除按鈕。有關如何使用該方法的詳細信息是here