CWindow::ResizeClient() Function for CWnd (or derived classes)

With this Function you can resize the window to the specified client area
size of your CWnd or derived classes like the CWindow::ResizeClient()
function.

Example

You have a dialog based application and the client rect of the
dialog depends on the size of a bitmap.

Source Code

BOOL CYourWndOrDialog::ResizeClient (int nWidth,
int nHeight,
BOOL bRedraw)
{
RECT rcWnd;
GetClientRect (&rcWnd);

if(nWidth != -1)
rcWnd.right = nWidth;

if(nHeight != -1)
rcWnd.bottom = nHeight;

if(!::AdjustWindowRectEx(&rcWnd,
GetStyle(),
(!(GetStyle() & WS_CHILD)
&& GetMenu() != NULL)), GetExStyle()))
return FALSE;

UINT uFlags = SWP_NOZORDER | SWP_NOMOVE;

if(!bRedraw)
uFlags |= SWP_NOREDRAW;

return SetWindowPos(NULL,
0, 0,
rcWnd.right - rcWnd.left,
rcWnd.bottom - rcWnd.top,
uFlags);
} // CYourWndOrDialog::ResizeClient

More by Author

Must Read