在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以?
// ------------------------------ vc2005 ------------------------------
void CMy001Dlg::RePos()
{
CRect rtClient;
GetClientRect(&rtClient);
CRect rc;
m_txtTmp.GetWindowRect(&rc);
int iWidth = 0; //获得宽度
iWidth = (double)((double)50 / (double)100) * (double)rtClient.Width();
m_txtTmp.MoveWindow(0,0,iWidth,rc.Height(),FALSE);
Invalidate();
}
void CMy001Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
RePos();
}
void CMy001Dlg::OnSizing(UINT fwSide, LPRECT pRect)
{
CDialog::OnSizing(fwSide, pRect);
// TODO: 在此处添加消息处理程序代码
RePos();
}
//------------------------------ vc6.0 ------------------------------
void CMy002Dlg::RePos()
{
CRect rtClient;
GetClientRect(&rtClient);
CRect rc;
if (!m_txtTmp.GetSafeHwnd())
return;
m_txtTmp.GetWindowRect(&rc);
int iWidth = 0; //获得宽度
iWidth = (double)((double)50 / (double)100) * (double)rtClient.Width();
m_txtTmp.MoveWindow(0,0,iWidth,rc.Height(),TRUE);
Invalidate();
}
void CMy002Dlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
RePos();
}