Управление размерами MFC CFrameWndEx для соответствия клиентской области панелям инструментов и строке состояния - PullRequest
0 голосов
/ 18 октября 2019

У меня есть собственный класс FrameWnd, который имеет панели инструментов и строку состояния, но также имеет дочернее окно, которое заполняет всю клиентскую область. Когда я вызываю GetClientArea и изменяю размер дочернего окна, чтобы заполнить клиентскую область, оно покрывает панели инструментов и строку состояния. Как я могу получить размер клиентской зоны МИНУС этих баров

1 Ответ

0 голосов
/ 18 октября 2019

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

Например:

CRect rc, rcToolbar, rcStatus;
GetClientRect(&rc);
m_Toolbar.GetClientRect(&rcToolbar);
m_Status.GetClientRect(&rcStatus);

rc.top = rcToolbar.bottom;
rc.bottom -= rcStatus.bottom;
...