CPen rpen(PS_SOLID,2,RGB(0,255,0)),*oldpen;
CWnd * pAcStaticDraw = GetDlgItem(IDC_STATIC_DRAW);//获取窗口
CDC *pControlDC = pAcStaticDraw->GetDC();//得到相应的dc
CDC memDC;
CBitmap bitmap,*pOldBitmap;
pAcStaticDraw->UpdateWindow(); memDC.CreateCompatibleDC(pControlDC);
bitmap.CreateCompatibleBitmap(pControlDC,100,100); pOldBitmap = memDC.SelectObject( &bitmap );
oldpen = memDC.SelectObject( &rpen );
memDC.Ellipse(0,0,100,100);
int t = memDC.SetBkColor(RGB(153,153,255)); pControlDC->BitBlt(0,0,100,100,&memDC,0,0,SRCCOPY); memDC.SelectObject(oldpen);
memDC.SelectObject(pOldBitmap);
DeleteObject(rpen);
pAcStaticDraw->ReleaseDC(pControlDC);
DeleteDC(memDC);
CWnd * pAcStaticDraw = GetDlgItem(IDC_STATIC_DRAW);//获取窗口
CDC *pControlDC = pAcStaticDraw->GetDC();//得到相应的dc
CDC memDC;
CBitmap bitmap,*pOldBitmap;
pAcStaticDraw->UpdateWindow(); memDC.CreateCompatibleDC(pControlDC);
bitmap.CreateCompatibleBitmap(pControlDC,100,100); pOldBitmap = memDC.SelectObject( &bitmap );
oldpen = memDC.SelectObject( &rpen );
memDC.Ellipse(0,0,100,100);
int t = memDC.SetBkColor(RGB(153,153,255)); pControlDC->BitBlt(0,0,100,100,&memDC,0,0,SRCCOPY); memDC.SelectObject(oldpen);
memDC.SelectObject(pOldBitmap);
DeleteObject(rpen);
pAcStaticDraw->ReleaseDC(pControlDC);
DeleteDC(memDC);
{
return false;
}
{
return TRUE;
}
是TRUE!!!
{
return TRUE;
}
我主要的问题是:bitblt到屏幕上时,该图的背景颜色不停的变化。
{
return true;
}
BOOL CYourStatic::OnPaint()
{
CPaintDC dc(this);
CDC memDC;
CBitmap bitmap,*pOldBitmap;memDC.CreateCompatibleDC(&dc);
bitmap.CreateCompatibleBitmap(&dc,100,100);pOldBitmap = memDC.SelectObject( &bitmap );
/*如果露出不想看到的背景的话就加下面的背景
CRect rect;
GetClientRect(rect);
memDC.FillSolidRect(rect, RGB(...));
*/
....
}
这也仅仅是用在电视、电影等技术中
人眼离电脑很近,所以50Hz不能够满足,你把刷新率调到60Hz看看,依然在闪烁,这种情况至少要到75Hz才可以感觉不在闪烁