MFC 改变子对话框大小

来源:互联网 发布:java如何创建对象数组 编辑:程序博客网 时间:2024/06/05 12:43

子对话框是绑定在主对话框某一控件的变量上

1.主对话框OnSize


//////IDC_EDIT_DATASHOW的绑定变量为m_DlgDataReport                            

//////m_DlgDataReport.Create(IDD_DIALOG_DATASHOW,&m_DlgDataShow);子对话框创建

void CSJSYSDlg::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);


//TODO: 在此处添加消息处理程序代码
if(nType==1) 
return;


CRect rect1;
this->GetClientRect(&rect1);//原来对话框大小
CWnd *pWnd = GetDlgItem(IDC_EDIT_DATASHOW); 
if(pWnd)   
{  
CRect rect; 
pWnd->GetWindowRect(&rect);  
ScreenToClient(&rect); 
rect.right += (rect1.right - rect.right)-5;     
pWnd->MoveWindow(rect);//改变子对话框绑定控件的大小


HWND hWnd = m_DlgDataReport.GetSafeHwnd(); 
if (IsWindow(hWnd))//判断子对话框是否存在
{
        CRect rect2;
m_DlgDataShow.GetClientRect(&rect2); 
rect2.left -=12;
rect2.top -=12;
rect2.right +=30 ;
rect2.bottom+=30;
m_DlgDataReport.MoveWindow(&rect2);//改变子对话框大小
m_DlgDataReport.ShowWindow(SW_SHOW);


}

2 子对话框OnSize

oid CDataReport::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);
if(nType==1) 
return;

CRect rect1;
this->GetClientRect(&rect1);
CWnd *pWnd = GetDlgItem(IDC_LIST_TABLE);  
if(pWnd) 
{  
CRect rect;  
pWnd->GetWindowRect(&rect);  
ScreenToClient(&rect);
rect.right += (rect1.right - rect.right) - 6; 
pWnd->MoveWindow(rect); //改变子对话框中控件大小
}  
// TODO: 在此处添加消息处理程序代码
}


0 0