Несмотря на то, что, как указал Макс, часто клеветой, MFC предоставляет CTaskBar
, который предназначен именно для такого рода вещей. То, что у вас внутри, очень похоже на CTreeCtrl
(или CTreeeView
) со связанным CImageList
для отображения значков для закладок. Изменение размера основного блока при открытой боковой панели обрабатывается автоматически. Чтобы создать проект, который включает это, выберите тип приложения «Visual Studio» (после выбора «Приложение MFC»).
Как примечание к записи, я вполне уверен, что FireFox не на самом деле использует MFC CTaskBar. Боковая панель Firefox довольно ограничена сравнением - она позволяет использовать только одну боковую панель с одной панелью в одной позиции. CTaskBar поддерживает несколько панелей задач, которые пользователь может переставлять по желанию, каждая из которых может иметь несколько плиточных панелей и / или панелей с вкладками (и, например, пользователь может не только перемещать полную панель задач перетаскиванием, но также перетаскивать панели между панели задач, перетащите панель самостоятельно, чтобы стать отдельной панелью задач и т. д.
Обратите внимание, что почти все это обрабатывается внутри MFC - вы просто создаете классы окон для хранения и отрисовки данных на панелях, и он обрабатывает такие вещи, как отслеживание того, где находится панель в данный момент.