floatdy_percent = (m_old_cy==0)?1:(float)((float)cy/(float)m_old_cy);
if(m_old_cx){
CRect WndRect;

CWnd * pWnd;
for(inti=0;i<m_control_info.GetSize();i){
pWnd = GetDlgItem(m_control_info[i]);
if(!pWnd){
TRACE(_T("Control ID-%dNot"),m_control_info[i]);
continue;
}
pWnd->GetWindowRect(&WndRect);
ScreenToClient(&WndRect);
WndRect.left= (int)(WndRect.left*dx_percent );
WndRect.right= (int)(WndRect.right*dx_percent );
WndRect.top= (int)(WndRect.top*dy_percent );
WndRect.bottom= (int)(WndRect.bottom*dy_percent );
pWnd->MoveWindow(&WndRect);
}
}
m_old_cx= cx;
m_old_cy= cy;
}
在OnInitialUpdate函数中加入控件ID
SetControlInfo(IDC_BUTTON1);
……
请大家注意了,这里需要获得对话框的初始尺寸就是我们在资源对话框中拉出的对话框的大小,才能知道缩放的比例。
获得初始尺寸使用的CScrollView中的函数GetTotalSize获得的。
已经搞定,共享之:视类中加成员函数和成员变量:void SetControlInfo(WORD CtrlId);protected:int m_old_cx,m_old_cy;CDWordArray m_control_info;构造函数中初始化:m_old_cx = m_old_cy = 0;加控件信息的函数定义:void CTestFormView::SetControlInfo(WORD CtrlId){m_control_info.Add(CtrlId);}修改OnSize函数:void CTestFormView::OnSize(UINT nType, int cx, int cy){if(cx==0 || cy==0){cx=800;cy=600;}CFormView::OnSize(nType, cx, cy);float dx_percent = (m_old_cx ==0)? 1 : (float)((float)cx(float)m_old_cx);float dy_percent = (m_old_cy ==0)? 1 : (float)((float)cy(float)m_old_cy);if(m_old_cx){CRect WndRect;CWnd *pWnd;for(int i = 0; i < m_control_info.GetSize(); i++){pWnd = GetDlgItem(m_control_info[i]);if(!pWnd){TRACE("Control ID - %d NOT FOUND!!n",m_control_info[i]);continue;}pWnd-GetWindowRect(&WndRect);ScreenToClient(&WndRect);WndRect.left = (int)(WndRect.left*dx_percent);WndRect.right = (int)(WndRect.right* dx_percent);WndRect.bottom = (int)(WndRect.bottom*dy_percent);WndRect.top = (int)(WndRect.top*dy_percent);pWnd-MoveWindow(&WndRect);}}m_old_cx = cx;m_old_cy = cy;}在OnInitialUpdate函数中加入控件ID:SetControlInfo(IDC_BUTTON1);。。。。。。cformview。。。。。cformview。。。。。
基于CFormView和CDialog的处理方法是一样的,可能是你什么地方出了点差错!
可以Hi我!
trueTechArticleCFormView动态调整对话框的尺寸并成比例调整部署控件,cformview控件 基于单文档的CFormView动态调整对话框的尺寸并成比例调整部署控件 如果...
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32924-2.html
无法调动人口占多数的人民力量
应该加收你1两鲜肉的钱