在给单文档添加位图背景时,采用了双缓存,但是运行时还是会出现闪烁,求大侠们帮忙解决一下。void COne_1View::OnDraw(CDC* pDC)
{
COne_1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc); CBitmap mbmp;
mbmp.LoadBitmap(IDB_BITMAP1); BITMAP bm;
mbmp.GetObject(sizeof(BITMAP),&bm); CDC dcMem;
dcMem.CreateCompatibleDC(pDC); CBitmap* pOldbmp = dcMem.SelectObject(&mbmp); pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY); dcMem.SelectObject(pOldbmp);}
{
COne_1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc); CBitmap mbmp;
mbmp.LoadBitmap(IDB_BITMAP1); BITMAP bm;
mbmp.GetObject(sizeof(BITMAP),&bm); CDC dcMem;
dcMem.CreateCompatibleDC(pDC); CBitmap* pOldbmp = dcMem.SelectObject(&mbmp); pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY); dcMem.SelectObject(pOldbmp);}
解决方案 »
- CMainFrame,view调用
- 请问用winsocket如何能获取到自己在INTERNET上的地址啊?
- 关于想让分隔窗体视类中的CTreeView动态更新显示的问题(急啊!)
- 线程中的Sleep()问题!
- www.java.sun.cn 上有没有JSP教程?我找不到?谢谢,JAVA版面的人气太少,所以在这里问。
- 急急急急急!回答就有分送!!!如何把.lib里面的内容导出来?
- 怎样获得指定区的磁盘总大小和可用空间大小?
- 如何实现剪切复制粘帖?!
- 如何获取一个字符的大小?
- 为什么不能正常显示?
- 这句代码是什么意思?*(unsigned long *)(&pDlg->mBuffer[i])=rand();
- 在static绘图的疑问
if(!m_Refresh)
{
m_Refresh=TRUE;
添加背景语句
}
2.
你重载OnEraseBkgnd这个函数,屏蔽默认的语句,直接返回FALSE试试,但你得测试其它功能是否正常
我最早是添加了一个函数,在函数内使用这段代码,里面加了只运行一次的标志,但没重载OnEraseBkgnd,再用OnDraw调用这个函数,但运行时,一刷屏,背景就变成空白了。谢谢你啊,我加上OnEraseBkgnd试试。
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
myBrush.CreatePatternBrush(&bmp);3、在OnDraw中添加:
CRect rect;
GetClientRect(rect);
pDC->FillRect(rect,&myBrush);4、给View添加OnEraseBkgnd(CDC* pDC)消息函数
直接返回TRUE;功能是实现了,还请高手帮忙看看有什么不足的地方,或者还有什么更好的办法解决这个问题?