CRichEditCtrl m_rich;(1)SDK:BOOL MoveWindow( HWND hWnd, // handle to window int X, // horizontal position int Y, // vertical position int nWidth, // width int nHeight, // height BOOL bRepaint // repaint flag ); ::MoveWindow(m_rich.m_hWnd,0,0,rc.Width()-8,rc.Height()-25,FALSE);(2)CWnd: if(m_rich.GetSafeHwnd()) m_rich.MoveWindow(0,0,rc.Width()-8,rc.Height()-25); 或者:if(GetDlgItem(IDC_RICHEDIT1)->GetSafeHwnd()) GetDlgItem(IDC_RICHEDIT1)->MoveWindow(0,0,rc.Width()-8,rc.Height()-25);
or
MoveWindow()
HWND hWnd, // handle to window
int X, // horizontal position
int Y, // vertical position
int nWidth, // width
int nHeight, // height
BOOL bRepaint // repaint flag
);
::MoveWindow(m_rich.m_hWnd,0,0,rc.Width()-8,rc.Height()-25,FALSE);(2)CWnd:
if(m_rich.GetSafeHwnd())
m_rich.MoveWindow(0,0,rc.Width()-8,rc.Height()-25);
或者:if(GetDlgItem(IDC_RICHEDIT1)->GetSafeHwnd())
GetDlgItem(IDC_RICHEDIT1)->MoveWindow(0,0,rc.Width()-8,rc.Height()-25);
.cpp文件里加
BEGIN_MESSAGE_MAP(CChatDlg, CDialog)
ON_WM_SIZE()
END_MESSAGE_MAP()下面是处理OnSize函数
void CChatDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
DlgWidth = cx;
DlgHeight = cy;
if(Chang)
{
if(changeforvideo == false)
{
GetDlgItem(IDC_STATIC_VIDEO)->SetWindowPos(NULL, DlgWidth - 146, rectrichedit21.top - 10, rectvideo.Width(), rectrichedit21.Height() + 10, NULL);
GetDlgItem(IDC_STATIC_MYVIDEO)->SetWindowPos(NULL, DlgWidth - 104, 346, rectmyvideo.Width(), rectmyvideo.Height(), NULL);
GetDlgItem(IDC_LIST1)->SetWindowPos(NULL, cx - 10 - rectlist1.Width(), 68, rectlist1.Width(), rectrichedit21.Height() + 10, NULL);
GetDlgItem(IDC_RICHEDIT21)->SetWindowPos(NULL, rectrichedit21.left, rectrichedit21.top, cx - 161 - rectrichedit21.left, cy - 157 -rectrichedit21.top, NULL);
GetDlgItem(IDC_RICHEDIT22)->SetWindowPos(NULL, rectrichedit21.left, cy - 120, cx - 161 - rectrichedit21.left, rectrichedit22.Height(), NULL);
//GetDlgItem(IDC_CHATDLG_ADDGROUPMEMBER)->SetWindowPos(NULL, cx - 10 - rectaddchatmember.Width(), rectlist1.top-8-rectaddchatmember.Height(), rectaddchatmember.Width(), rectaddchatmember.Height(), NULL);
//GetDlgItem(IDC_STATIC_CHATDLG_ADDGROUPMEMBER)->SetWindowPos(NULL, cx - 10 - rectaddchatmember.Width() - 14-rectbitmapaddmember.Width(), rectbitmapaddmember.top, rectbitmapaddmember.Width(), rectbitmapaddmember.Height(), NULL);
}
else
{
GetDlgItem(IDC_STATIC_VIDEO)->SetWindowPos(NULL, DlgWidth - 291, rectrichedit21.top, 280, rectrichedit21.Height(), NULL);
GetDlgItem(IDC_STATIC_MYVIDEO)->SetWindowPos(NULL, DlgWidth - 104, 346, rectmyvideo.Width(), rectmyvideo.Height(), NULL);
GetDlgItem(IDC_LIST1)->SetWindowPos(NULL, cx - 10 - rectlist1.Width(), 68, rectlist1.Width(), rectrichedit21.Height() + 10, NULL);
GetDlgItem(IDC_RICHEDIT21)->SetWindowPos(NULL, rectrichedit21.left, rectrichedit21.top, DlgWidth - 300 - rectrichedit21.left, DlgHeight - 157 -rectrichedit21.top, NULL);
GetDlgItem(IDC_RICHEDIT22)->SetWindowPos(NULL, rectrichedit21.left, DlgHeight - 120, DlgWidth - 300 - rectrichedit21.left, rectrichedit22.Height(), NULL);
//GetDlgItem(IDC_STATIC_VIDEO_WAIT)->SetWindowPos(NULL, DlgWidth - 295, DlgHeight - 27, 288, 20, NULL);
GetDlgItem(IDC_STATIC_GROUPBOXVIDEO)->SetWindowPos(NULL, DlgWidth - 293, rectrichedit21.top - 9, 284, rectrichedit21.Height() + 12, NULL);
GetDlgItem(IDC_STATIC_GROUPBOXMYVIDEO)->SetWindowPos(NULL, DlgWidth - 106, 337, rectmyvideo.Width() + 4, rectmyvideo.Height() +12, NULL);
}
}
else
{
Chang =true;
}
}
用窗体比例值。