Как получить окрашиваемую область в CFrameWnd с диалоговыми панелями? - PullRequest
0 голосов
/ 21 июля 2010

У меня есть CFrameWnd с диалоговой панелью, и я хотел бы определить окрашиваемую область (исключая пространство, используемое диалоговой панелью), чтобы я мог рисовать в ней, не перекрывая диалоговую панель.Как я могу это сделать?GetClientRect(), кажется, покрывает и прямоугольную область клиента, и я не вижу других очевидных кандидатов в документации.

Ответы [ 2 ]

1 голос
/ 22 июля 2010

Я почти уверен, что метод Cwnd :: RepositionBars должен предоставить необходимую информацию.У вас работает следующий код?

CRect rcClient;
pFrameWnd->RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, CWnd::reposQuery, &rcClient);
0 голосов
/ 11 апреля 2012

У меня была похожая проблема с CDockablePane, которую я решил с помощью

CRect rc;
GetDockingManager()->GetClientAreaBounds(rc);

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

...