CBitmap m_bitmap
HBITMAP p=SHLoadDIBitmap(_T("\\c.bmp"));
CBitmap m_bitmap.Attach(p);
m_bitmap.GetBitmap(&bm);
CDC pDC = GetDC();
if(!memdc.GetSafeHdc())
{
memdc.CreateCompatibleDC(pDC);
memdc.SelectObject(&m_bitmap);
}
pDC->StretchBlt(AX,AY,ACX,ACY,&memdc,g_ViewPortX,g_ViewPortY,ACX,ACY,SRCCOPY);
pDC->SetBkMode(TRANSPARENT);
pDC->MoveTo(0,ACY/2);
pDC->LineTo(ACX,ACY/2);
pDC->MoveTo(ACX/2,0);
pDC->LineTo(ACX/2,ACY);
pDC->ExtTextOut(30,30,ETO_OPAQUE,NULL,_T("1111"),NULL );
pDC->ExtTextOut(230,30,ETO_OPAQUE,NULL,_T("1222"),NULL );
pDC->ExtTextOut(30,230,ETO_OPAQUE,NULL,_T("1333"),NULL );
怪现象:
1.贴图与后画的线和字不同步,好像图更新的次数多,画的有延迟和缺帧现象
2,写的字中只有第三行不闪烁,其余闪烁非常厉害
正常 操作图是要时间的 这会引起闪烁。用内存dc,就行了
果真如此就没什么奇怪了
奇怪的是有的闪烁有的不闪,上面三个输出字符串,有一个不闪,其余的闪烁严重。而且上述如果写的字符串到内存memdc再显示,就不会出现,难道memdc选择了bitmap后就不能继续绘图了吗?
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
.............
最后用bitblt(),呵呵,初学,这个还是知道的
感谢各位大侠援手,可我想知道:
1、为什么有一个不闪,其余的闪烁严重。
2、难道memdc选择了bitmap后就不能继续绘图了吗?