15,979
社区成员
发帖
与我相关
我的任务
分享
void CMyEverythingDlg::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);
/* BOOL isSizeChanged = (nType == SIZE_MAXIMIZED) ||
(nType == SIZE_MINIMIZED) ||
(nType == SIZE_RESTORED ) ||
(nType == SIZE_MAXHIDE ) ||
(nType == SIZE_MAXSHOW );
*/
//如果Init完毕,那么调用ReSize
if ( m_bIsInit )
{
this->Invalidate(TRUE);
//改变窗口控件的位置
for ( int i = 0; i < sizeof(RES_LIST) / sizeof(int); ++i )
{
Resize(RES_LIST[i]);
}
//保存需要回复的放大倍数(倒数)
m_fMultiWidth = float(1 / m_fMultiWidth);
m_fMultiHeight = float(1 / m_fMultiHeight);
}
}
/*********************************************************************
函数名 :Resize
函数作用 :调整窗口具体控件的未知大小
输入参数 :const int iID
输出参数 :void
*********************************************************************/
void CMyEverythingDlg::Resize(const int iID)
{
CRect rect;
this->GetDlgItem(iID)->GetWindowRect(&rect);
//计算控件左上角点的改变
CPoint oldLTPoint,newLTPoint;
oldLTPoint = rect.TopLeft();
newLTPoint.x = long(m_fMultiWidth * oldLTPoint.x);
newLTPoint.y = long(m_fMultiHeight * oldLTPoint.y);
//计算控件右下角的改变
CPoint oldBRPoint,newBRPoint;
oldBRPoint = rect.BottomRight();
newBRPoint.x = long(m_fMultiWidth * oldBRPoint.x);
newBRPoint.y = long(m_fMultiHeight * oldBRPoint.y);
//移动控件到新的矩形
rect.SetRect(newLTPoint,newBRPoint);
this->GetDlgItem(iID)->MoveWindow(&rect,TRUE);
}