dcsimg

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                    
                                


This article was originally published on January 26th, 2001

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date