Шаг 314 - Аналог AdjustWindowsRect в MFC (CalcWindowRect)

Данная функция рассчитывает размер окна на основе окна клиента. В MFC класс окна - это класс CWnd. У него есть свой метод, чтобы делать тоже самое. Кстати от CWnd порождены многие классы, например, CEdit или CList, так что о чем пoдумать есть.

virtual void CalcWindowRect
( 
	LPRECT lpClientRect, 
	UINT nAdjustType = adjustBorder 
);

Вызовите этот метод, чтобы вычислить требуемый размер прямоугольника окна, основанного на желательном размере прямоугольника клиента. Результирующий прямоугольник окна содержащийся в lpClientRect может затем быть использован в методе Create(), чтобы создать окно, чья клиентская область имеет нужный размер.

Пример:

void CMyView::OnMyCreateframe() 
{ 
	CFrameWnd* pFrameWnd = new CFrameWnd; 
	CRect myRect; 
	GetClientRect(myRect); 
	pFrameWnd->Create(NULL, "My Frame"); 
	pFrameWnd->CalcWindowRect(&myRect, CWnd::adjustBorder); 
	pFrameWnd->MoveWindow(0, 0, myRect.Width(), myRect.Height());
	pFrameWnd->ShowWindow(SW_SHOW);
}

О самой функции AdjustWindowRect() можно прочитать WinAPI: "Шаг 73 - Функция AdjustWindowRect()".


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.