void CMyDialog::OnPaint()
{
//IDC_STC_CANVAS是一大块CStatic控件
CWnd* _pWnd = GetDlgItem(IDC_STC_CANVAS);
CDC* _pDC = _pWnd->GetDC();
CDC* _pMemDC=new CDC;
_pMemDC->CreateCompatibleDC(NULL);
CBitmap* _pMemDCbmp=new CBitmap;
_pMemDCbmp->CreateCompatibleBitmap(_pDC, m_rectCoor.Width(),m_rectCoor.Height());
CBitmap* _pOldBitmap = _pMemDC->SelectObject(_pMemDCbmp);
.........
.........
_pDC->BitBlt(把_pMemDC复制过来);
delete _pMemDCbmp;
delete _pMemDC;
}
然后就用_pMemDC绘图,绘完之后再绘的是一条曲线,我要通过点击曲线对曲线进行编辑,还要通过OnMouseMove对曲线进行编辑,这时候界面就闪得十分厉害,这是什么呢?我用了双缓存呀为什么还闪得厉害,和没用一样
{
//IDC_STC_CANVAS是一大块CStatic控件
CWnd* _pWnd = GetDlgItem(IDC_STC_CANVAS);
CDC* _pDC = _pWnd->GetDC();
CDC* _pMemDC=new CDC;
_pMemDC->CreateCompatibleDC(NULL);
CBitmap* _pMemDCbmp=new CBitmap;
_pMemDCbmp->CreateCompatibleBitmap(_pDC, m_rectCoor.Width(),m_rectCoor.Height());
CBitmap* _pOldBitmap = _pMemDC->SelectObject(_pMemDCbmp);
.........
.........
_pDC->BitBlt(把_pMemDC复制过来);
delete _pMemDCbmp;
delete _pMemDC;
}
然后就用_pMemDC绘图,绘完之后再绘的是一条曲线,我要通过点击曲线对曲线进行编辑,还要通过OnMouseMove对曲线进行编辑,这时候界面就闪得十分厉害,这是什么呢?我用了双缓存呀为什么还闪得厉害,和没用一样
CDC* _pDC = _pWnd->GetDC();
CDC* _pMemDC = NULL;
_pMemDC->CreateCompatibleDC(_pDC);
_pMemDC->CreateCompatibleDC(_pDC);