Большинство наборов инструментов GUI предоставляют подходящие элементы управления деревом и списками, а также контейнер сплиттера, который пользователь может перетаскивать, чтобы установить размеры трех панелей. Если вы используете C #, то для создания с использованием перетаскивания потребуется несколько минут (при использовании форм Windows у вас будет форма с двумя элементами управления Splitter, TreeView и ListView, и любой тип элемента управления, в котором отображаются данные) ; другие наборы инструментов, которые я использовал, обычно требуют больше программирования.
Придерживаясь C ++, вы можете использовать MFC (CTreeCtrl, CListCtrl, CSplitterWnd), wxWindows (wxGenericDirCtrl / wxTreeCtrl, wxListCtrl, wxSplitterWindow) или QT (я не знаю QT). Разработка C ++ займет больше времени без какой-либо выгоды (если вы не выполняете очень интенсивную работу, не беспокойтесь о C ++ для GUI; обычно преимущества управляемой системы в многопоточной работе дают лучший пользовательский опыт, чем приложение C ++ )