steffi123 Ответов: 1

Cdockablepane без кнопки закрытия


Привет,

У меня есть 2 отдельных закрепляемых панели в моем приложении

Я могу удалить кнопку закрытия в каждой CDockablePane, удалив флаги "AFX_CBRS_CLOSE" в функции create.

Если они разделены на фрейме, то у них нет кнопки закрытия, но как только я объединяю их в одни и те же вкладки, появляется кнопка закрытия.



Пожалуйста, помогите мне.

Спасибо.

Что я уже пробовал:

Чтобы решить эту проблему, я переопределил функцию virtual CTabbedPane*CreateTabbedPane(); в каждом подклассе класса dockablepane.
CTabbedPane* CClassView::CreateTabbedPane()
{
CTabbedPane* pTabbedPane = CDockablePane::CreateTabbedPane();
ASSERT_VALID(pTabbedPane);
// remove AFX_CBRS_CLOSE flag;
#define AFX_NON_CLOSE_DOCKING_PANE_STYLEAFX_CBRS_FLOAT | AFX_CBRS_RESIZE | AFX_CBRS_AUTOHIDE
pTabbedPane->SetControlBarStyle(AFX_NON_CLOSE_DOCKING_PANE_STYLE);
pTabbedPane->RecalcLayout();
return pTabbedPane;
}

После очистки параметра реестра при первом запуске приложения панель с вкладками, содержащая несколько закрепляемых панелей, не имеет кнопки закрытия.

При простом повторном открытии приложения, ничего не делая с ним, панель с вкладками, содержащая несколько закрепляемых панелей, имеет кнопку закрытия.

Я поделился образцом приложения, созданного в VS2008, в приведенном ниже пути onedrive.

https://aspiresysinc-my.sharepoint.com/:u:/g/personal/sujitha_ramamoorthy_aspiresys_com/EXpl4YmZ9JlAqTz4w_YKIJsBcOziO9tyNsqF9UFBub8-0w?e=dntvIa

В моем примере приложения tabbedpane будет присвоен 2 закрепляемых панелей им fileview и представления классов.

В vs2015 я также столкнулся с той же проблемой.

Я не хочу каждый раз очищать настройки реестра перед открытием приложения.

1 Ответов

Рейтинг:
7

_Flaviu

Вы можете найти решение здесь: Как скрыть меню "закрыть"в CDockablePane[^]