You can use SetWindowPos :
this->SetWindowPos(NULL,0,0,newWidth,newHeight,SWP_NOMOVE | SWP_NOZORDER);
This will change the size of the dialog, but you will need to move and resize the control inside the dialog using the same function but with the CWnd of the control.
You should put this code in the OnSize members of the dialog and use the client width and height provided.
CWnd* pCtrl = GetDlgItem(IDC_CONTROL1);
pCtrl->SetWindowPos(NULL,(dialogWidth-rectCtrl.Width())/2,(dialogHeight-rectCtrl.Height())/2,0,0,SWP_NOSIZE | SWP_NOZORDER);