В одном из наших приложений я использовал некоторые классы MFC, чтобы разрешить закрепление окна боковой панели, примерно так:
CDialogBar* bar = new CDialogBar;
bar->Create(this, IDD, WS_CHILD | WS_VISIBLE | CBRS_RIGHT | CBRS_TOOLTIPS, IDD));
bar->EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_RIGHT | CBRS_ALIGN_LEFT);
DockControlBar(bar, AFX_IDW_DOCKBAR_RIGHT);
Это все отлично работает.
Я хочу сделать подобное сейчас в другом приложении. К сожалению, он был изменен, чтобы использовать некоторые классы из «пакета функций» MFC, которые очень симпатичны, но этот подход больше не работает (он утверждает, что я могу исправить с небольшим изменением, но тогда боковая панель не появляется). Документация для этих новых классов ужасна, поэтому у меня возникли некоторые проблемы с выяснением того, что я должен делать. Я попробовал то, что кажется "новым" подходом:
CPaneDialog* pane = new CPaneDialog;
pane->Create("pane", this, TRUE, IDD, WS_VISIBLE | WS_CHILD, IDD);
EnableDocking(CBRS_ALIGN_RIGHT | CBRS_ALIGN_LEFT);
AddPane(pane);
DockPane(pane);
Это работает, когда появляется боковое окно, но оно не кажется подвижным и не рисуется должным образом.
Я чувствую, что стреляю в темноте со всем этим. Кто-нибудь знает, каков правильный подход к нему?