У меня есть CFrameWnd с диалоговой панелью, и я хотел бы определить окрашиваемую область (исключая пространство, используемое диалоговой панелью), чтобы я мог рисовать в ней, не перекрывая диалоговую панель.Как я могу это сделать?GetClientRect(), кажется, покрывает и прямоугольную область клиента, и я не вижу других очевидных кандидатов в документации.
GetClientRect()
Я почти уверен, что метод Cwnd :: RepositionBars должен предоставить необходимую информацию.У вас работает следующий код?
CRect rcClient; pFrameWnd->RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, CWnd::reposQuery, &rcClient);
У меня была похожая проблема с CDockablePane, которую я решил с помощью
CRect rc; GetDockingManager()->GetClientAreaBounds(rc);
, но я также столкнулся с проблемой невозможности найти сообщение или обратный вызов, чтобы узнать, когда его вызвать.