关于对话框刷新问题
void CNavigateDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
DrawBox(dc, m_DragRect);
}
BOOL CNavigateDlg::OnEraseBkgnd(CDC* pDC)
{
//自画
......
return TRUE;
}
void CNavigateDlg::DrawBox ( CDC &dc, CRect &rect)
{
// Draw the rect with lines (eliminate rect middle fill)
dc.MoveTo(rect.left-1, rect.top);
dc.LineTo(rect.right, rect.top);
dc.LineTo(rect.right, rect.bottom);
dc.LineTo(rect.left, rect.bottom);
dc.LineTo(rect.left, rect.top);
}
void CNavigateDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialog::OnLButtonDown(nFlags, point);
SetCapture();
::SetCursor(::LoadCursor(NULL, IDC_CROSS));
m_bCaptured = TRUE;
}
void CNavigateDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (m_bCaptured)
{
CClientDC dc(this);
CRect rect(point.x-30,point.y-0,point.x+30,point.y+30);
CRect rectU;
rectU.UnionRect(&rect,&m_DragRect);
m_DragRect=rect;
InvalidateRect(&rectU);
}
CDialog::OnMouseMove(nFlags, point);
}
void CNavigateDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
CDialog::OnLButtonUp(nFlags, point);
if (m_bCaptured)
{
m_bCaptured = FALSE;
ReleaseCapture();
}
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
}
画的框随鼠标移动时很闪~~~~~~~~ 怎么解决,~~~~~~ 盼高手指点~~~~~`