.h文件中添加代码
private:
POINT Old;
CRect m_rect;
CRect m_rect;
public:
afx_msg void OnSize(UINT nType, int cx, int cy);
//void ReSize();
};
//void ReSize();
};
BOOL CDeviceParameter::OnInitDialog()
{
CDialog::OnInitDialog();
{
CDialog::OnInitDialog();
ClearDeviceView(&m_ListView);
InitDeviceTree(&m_TreeView,&g_Manager.m_Conf,g_Manager.m_Index);
InitDeviceTree(&m_TreeView,&g_Manager.m_Conf,g_Manager.m_Index);
//CRect rect;
//GetClientRect(&rect); //取客户区大小
//Old.x=rect.right-rect.left;
//Old.y=rect.bottom-rect.top;
GetClientRect(&m_rect);
//GetClientRect(&rect); //取客户区大小
//Old.x=rect.right-rect.left;
//Old.y=rect.bottom-rect.top;
GetClientRect(&m_rect);
return TRUE;
}
}
void
CDeviceParameter::OnSize(
UINT nType,
int cx,
int cy
)
{
CWnd *pWnd;
CRect rect;
CDialog::OnSize(nType, cx, cy);
//窗体大小发生变动。处理函数ReSize
/*if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED)
{
ReSize();
}*/
CDeviceParameter::OnSize(
UINT nType,
int cx,
int cy
)
{
CWnd *pWnd;
CRect rect;
CDialog::OnSize(nType, cx, cy);
//窗体大小发生变动。处理函数ReSize
/*if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED)
{
ReSize();
}*/
/*if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED)
{
pWnd = GetDlgItem(IDC_TREEVIEWSHOW);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = rect.left * cx / m_rect.Width();
rect.right = rect.right * cx / m_rect.Width();
rect.top = rect.top * cy / m_rect.Height();
rect.bottom = rect.bottom * cy / m_rect.Height();
pWnd->MoveWindow(rect);
}
{
pWnd = GetDlgItem(IDC_TREEVIEWSHOW);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = rect.left * cx / m_rect.Width();
rect.right = rect.right * cx / m_rect.Width();
rect.top = rect.top * cy / m_rect.Height();
rect.bottom = rect.bottom * cy / m_rect.Height();
pWnd->MoveWindow(rect);
}
pWnd = GetDlgItem(IDC_STATIC_TREE);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = rect.left * cx / m_rect.Width();
rect.right = rect.right * cx / m_rect.Width();
rect.top = rect.top * cy / m_rect.Height();
rect.bottom = rect.bottom * cy / m_rect.Height();
pWnd->MoveWindow(rect);
}
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = rect.left * cx / m_rect.Width();
rect.right = rect.right * cx / m_rect.Width();
rect.top = rect.top * cy / m_rect.Height();
rect.bottom = rect.bottom * cy / m_rect.Height();
pWnd->MoveWindow(rect);
}
pWnd = GetDlgItem(IDC_LISTVIEW);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = rect.left * cx / m_rect.Width();
rect.right = rect.right * cx / m_rect.Width();
rect.top = rect.top * cy / m_rect.Height();
rect.bottom = rect.bottom * cy / m_rect.Height();
pWnd->MoveWindow(rect);
}
pWnd = GetDlgItem(IDC_CLOSE);
if (pWnd)
{
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = rect.left * cx / m_rect.Width();
rect.right = rect.right * cx / m_rect.Width();
rect.top = rect.top * cy / m_rect.Height();
rect.bottom = rect.bottom * cy / m_rect.Height();
pWnd->MoveWindow(rect);
}
pWnd = GetDlgItem(IDC_CLOSE);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = rect.left * cx / m_rect.Width();
rect.right = rect.right * cx / m_rect.Width();
rect.top = rect.top * cy / m_rect.Height();
rect.bottom = rect.bottom * cy / m_rect.Height();
pWnd->MoveWindow(rect);
}
ScreenToClient(&rect);
rect.left = rect.left * cx / m_rect.Width();
rect.right = rect.right * cx / m_rect.Width();
rect.top = rect.top * cy / m_rect.Height();
rect.bottom = rect.bottom * cy / m_rect.Height();
pWnd->MoveWindow(rect);
}
GetClientRect(&m_rect);
}
if (nType == SIZE_MAXIMIZED)
{
pWnd = GetDlgItem(IDC_TREEVIEWSHOW);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.right = 200;
rect.top = 35;
rect.bottom = 630;
pWnd->MoveWindow(rect);
}
}
if (nType == SIZE_MAXIMIZED)
{
pWnd = GetDlgItem(IDC_TREEVIEWSHOW);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.right = 200;
rect.top = 35;
rect.bottom = 630;
pWnd->MoveWindow(rect);
}
pWnd = GetDlgItem(IDC_STATIC_TREE);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.right = 220;
rect.top = 10;
rect.bottom = 650;
pWnd->MoveWindow(rect);
}
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.right = 220;
rect.top = 10;
rect.bottom = 650;
pWnd->MoveWindow(rect);
}
pWnd = GetDlgItem(IDC_LISTVIEW);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = 250;
rect.right = 1260;
rect.top = 10;
rect.bottom = 650;
pWnd->MoveWindow(rect);
}
pWnd = GetDlgItem(IDC_CLOSE);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = 1100;
rect.right = 1260;
rect.top = 670;
rect.bottom = 700;
pWnd->MoveWindow(rect);
}
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = 250;
rect.right = 1260;
rect.top = 10;
rect.bottom = 650;
pWnd->MoveWindow(rect);
}
pWnd = GetDlgItem(IDC_CLOSE);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.left = 1100;
rect.right = 1260;
rect.top = 670;
rect.bottom = 700;
pWnd->MoveWindow(rect);
}
GetClientRect(&m_rect);
}*/
pWnd = GetDlgItem(IDC_STATIC_TREE); //获取控件句柄
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
//rect.left = cx - rect.Width() - cWidth;
//rect.right = cx - cWidth;
rect.left = 10;
rect.right = 210;
//rect.top = cy - rect.Height() - cHeight;
//rect.bottom = cy - cHeight;
}*/
pWnd = GetDlgItem(IDC_STATIC_TREE); //获取控件句柄
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
//rect.left = cx - rect.Width() - cWidth;
//rect.right = cx - cWidth;
rect.left = 10;
rect.right = 210;
//rect.top = cy - rect.Height() - cHeight;
//rect.bottom = cy - cHeight;
rect.top = 10;
rect.bottom = cy - 80;
pWnd->MoveWindow(rect);//设置控件大小
}
rect.bottom = cy - 80;
pWnd->MoveWindow(rect);//设置控件大小
}
pWnd = GetDlgItem(IDC_TREEVIEWSHOW); //获取控件句柄
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
rect.left = 15;
rect.right = 205;
rect.top = 35;
rect.bottom = cy - 100;
pWnd->MoveWindow(rect);//设置控件大小
}
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
rect.left = 15;
rect.right = 205;
rect.top = 35;
rect.bottom = cy - 100;
pWnd->MoveWindow(rect);//设置控件大小
}
pWnd = GetDlgItem(IDC_LISTVIEW); //获取控件句柄
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
rect.left = 250;
rect.right = cx - 10;
rect.top = 10;
rect.bottom = cy - 70;
pWnd->MoveWindow(rect);//设置控件大小
}
pWnd = GetDlgItem(IDC_CLOSE); //获取控件句柄
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
rect.left = cx - 90;
rect.right = cx - 10;
rect.top = cy - 50;
rect.bottom = cy - 20;
pWnd->MoveWindow(rect);//设置控件大小
}
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
rect.left = 250;
rect.right = cx - 10;
rect.top = 10;
rect.bottom = cy - 70;
pWnd->MoveWindow(rect);//设置控件大小
}
pWnd = GetDlgItem(IDC_CLOSE); //获取控件句柄
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
rect.left = cx - 90;
rect.right = cx - 10;
rect.top = cy - 50;
rect.bottom = cy - 20;
pWnd->MoveWindow(rect);//设置控件大小
}
GetClientRect(&m_rect);//将变化后的对话框大小设为旧大小
}
/*void
CDeviceParameter::ReSize()
{
float fsp[2];
POINT Newp; //获取现在对话框的大小
CRect recta;
CRect Rect;
int woc;
CPoint OldTLPoint;
CPoint TLPoint; //左上角
CPoint OldBRPoint;
CPoint BRPoint; //右下角
HWND hwndChild;
CDeviceParameter::ReSize()
{
float fsp[2];
POINT Newp; //获取现在对话框的大小
CRect recta;
CRect Rect;
int woc;
CPoint OldTLPoint;
CPoint TLPoint; //左上角
CPoint OldBRPoint;
CPoint BRPoint; //右下角
HWND hwndChild;
GetClientRect(&recta); //取客户区大小
Newp.x = recta.right - recta.left;
Newp.y = recta.bottom - recta.top;
fsp[0] = (float)Newp.x / Old.x;
fsp[1] = (float)Newp.y / Old.y;
hwndChild = ::GetWindow(m_hWnd,GW_CHILD); //列出所有控件
Newp.x = recta.right - recta.left;
Newp.y = recta.bottom - recta.top;
fsp[0] = (float)Newp.x / Old.x;
fsp[1] = (float)Newp.y / Old.y;
hwndChild = ::GetWindow(m_hWnd,GW_CHILD); //列出所有控件
while(hwndChild)
{
woc = ::GetDlgCtrlID(hwndChild);//取得ID
GetDlgItem(woc)->GetWindowRect(Rect);
{
woc = ::GetDlgCtrlID(hwndChild);//取得ID
GetDlgItem(woc)->GetWindowRect(Rect);
ScreenToClient(Rect);
OldTLPoint = Rect.TopLeft();
TLPoint.x = long(OldTLPoint.x * fsp[0]);
TLPoint.y = long(OldTLPoint.y * fsp[1]);
TLPoint.x = long(OldTLPoint.x * fsp[0]);
TLPoint.y = long(OldTLPoint.y * fsp[1]);
OldBRPoint = Rect.BottomRight();
BRPoint.x = long(OldBRPoint.x * fsp[0]);
BRPoint.y = long(OldBRPoint.y * fsp[1]);
BRPoint.x = long(OldBRPoint.x * fsp[0]);
BRPoint.y = long(OldBRPoint.y * fsp[1]);
Rect.SetRect(TLPoint,BRPoint);
GetDlgItem(woc)->MoveWindow(Rect,TRUE);
hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT);
}
GetDlgItem(woc)->MoveWindow(Rect,TRUE);
hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT);
}
Old = Newp;
}*/
}*/