Revision: 13698
                            
                                                            
                                    
                                        
Initial Code
                                    
                                    
                                                            
                                    
                                        
Initial URL
                                    
                                    
                                
                                                            
                                    
                                        
Initial Description
                                    
                                    
                                                            
                                    
                                        
Initial Title
                                    
                                    
                                                            
                                    
                                        
Initial Tags
                                    
                                    
                                                            
                                    
                                        
Initial Language
                                    
                                    
                                                    
                        at May 2, 2009 19:57 by jimfred
                            
                            Initial Code
// This OnSize function resizes one large control in a dialog. 
// The one control grows horizontally and vertically to fill the dialog. It's position remains unchanged.
// Other controls (buttons etc) would typically be above the one resizable control.
// How to add OnSize:
// [1] add to .h:                     afx_msg void OnSize(UINT nType, int cx, int cy);
// [2] add to message map in .cpp:    ON_WM_SIZE()
// [3] add this OnSize function.
void CMyDlg::OnSize(UINT nType, int formWidthArg, int formHeightArg)
{
   CDialog::OnSize(nType, formWidthArg, formHeightArg); // Let dialog resize itself.
   // http://www.codersource.net/mfc_resize_controls.html
   // http://wwwusers.brookes.ac.uk/p0071643/resize.htm
   
   // get pointer to the control to be resized dynamically
   CWnd* pCtl = GetDlgItem(IDC_MSFLEXGRID1);
   
   if (!pCtl) { return; } // control may not exist yet.
   CRect rectCtl;                 // Allocate CRect for control's position.
   pCtl->GetWindowRect(&rectCtl); // Get control's position.
   ScreenToClient(&rectCtl);      // Convert from absolute screen coordinates to dialog-relative coordinates.
   // Now resize the control dynamically by calling MoveWindow
   // rectCtl.left is assumed to be the left, bottom and right margin for the control. 
   pCtl->MoveWindow(
      rectCtl.left,                               // x. remains unchanged
      rectCtl.top,                                // y. remains unchanged
      formWidthArg - 2 * rectCtl.left,            // w. Grow to fill horizontally
      formHeightArg - rectCtl.top - rectCtl.left, // h. Grow to fill vertically
      TRUE)
   ;
   return;
} // OnSize()
                                Initial URL
Initial Description
This OnSize function resizes one large control in a dialog. The one control grows horizontally and vertically to fill the dialog. It's position remains unchanged. Other controls (buttons etc) would typically be above the one resizable control.
Initial Title
MFC, resize control in CDialog app
Initial Tags
c
Initial Language
C++