MFC TableControl 控件各子页面以及子页面上的控件 随窗口最大化 而改变大小解决思路
MFC TableControl 控件各子页面以及子页面上的控件 随窗口最大化 而改变大小
RT
在MFC的主对话框中有Tabcontrol 控件,控件上绑定了两个子对话框,子对话框上有一些控件,,现在窗口最大化后,,怎么调整子对话框中控件的大小???
说明:主对话框中的tabcontrol控件可以 随窗口最大化 而改变大小:
void CManageTabDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
if((m_change_flag == true)&&(CPageDb::m_bInitDlg = true))
{
// ShowWindow(SW_MAXIMIZE);
ReSize(IDC_TAB_SERVER_INFO,true);//这行可以改变大小,IDC_TAB_SERVER_INFO--tabcontrol控件ID
ReSize(IDD_PAGE_DB,true);//tabcontrol控件上添加的页面ID, 这个不可以改变大小,phWnd =NULL
m_Multiple_width = float(1)/ m_Multiple_width ;
m_Mutiple_heith = float(1)/m_Mutiple_heith ;
}//IDC_TAB_SERVER_INFO
}
void CManageTabDlg::ReSize(int nID,bool bSizeFlag)
{
CRect Rect;
CWnd *phWnd;
phWnd = GetDlgItem(nID);
if(phWnd == NULL)
{
AfxMessageBox(_T("get HWND error"));
return ;
}
phWnd->GetWindowRect(Rect);
ScreenToClient(Rect);
CManageTabDlg::GetNewRect(Rect,m_Multiple_width,m_Mutiple_heith,bSizeFlag);
phWnd->MoveWindow(Rect,TRUE);
}
------解决方案--------------------
子对话框的父窗口是TabControl?
------解决方案--------------------
phWnd = GetDlgItem(nID);获取不到对话框的指针。
------解决方案--------------------
那就在tabcontrol的OnSize里处理一下,缩放子对话框。不过子对话缩放的时候不会对里面的控件重新排列和缩放,都要你自己在OnSIze处理
RT
在MFC的主对话框中有Tabcontrol 控件,控件上绑定了两个子对话框,子对话框上有一些控件,,现在窗口最大化后,,怎么调整子对话框中控件的大小???
说明:主对话框中的tabcontrol控件可以 随窗口最大化 而改变大小:
void CManageTabDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
if((m_change_flag == true)&&(CPageDb::m_bInitDlg = true))
{
// ShowWindow(SW_MAXIMIZE);
ReSize(IDC_TAB_SERVER_INFO,true);//这行可以改变大小,IDC_TAB_SERVER_INFO--tabcontrol控件ID
ReSize(IDD_PAGE_DB,true);//tabcontrol控件上添加的页面ID, 这个不可以改变大小,phWnd =NULL
m_Multiple_width = float(1)/ m_Multiple_width ;
m_Mutiple_heith = float(1)/m_Mutiple_heith ;
}//IDC_TAB_SERVER_INFO
}
void CManageTabDlg::ReSize(int nID,bool bSizeFlag)
{
CRect Rect;
CWnd *phWnd;
phWnd = GetDlgItem(nID);
if(phWnd == NULL)
{
AfxMessageBox(_T("get HWND error"));
return ;
}
phWnd->GetWindowRect(Rect);
ScreenToClient(Rect);
CManageTabDlg::GetNewRect(Rect,m_Multiple_width,m_Mutiple_heith,bSizeFlag);
phWnd->MoveWindow(Rect,TRUE);
}
------解决方案--------------------
子对话框的父窗口是TabControl?
------解决方案--------------------
phWnd = GetDlgItem(nID);获取不到对话框的指针。
------解决方案--------------------
那就在tabcontrol的OnSize里处理一下,缩放子对话框。不过子对话缩放的时候不会对里面的控件重新排列和缩放,都要你自己在OnSIze处理