我处理了erasebackground:
BOOL CWDPFView::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return TRUE;
//return CView::OnEraseBkgnd(pDC);
}
设置了另外一种分辨率:
void CWDPFView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
RECT Rect;
GetClientRect( &Rect );
pDC->SetMapMode( MM_ANISOTROPIC );
pDC->SetWindowExt(16383,16383);
pDC->SetViewportExt(Rect.right,Rect.bottom);
CView::OnPrepareDC(pDC, pInfo);
}
在Ondraw中用双缓冲画图
在OnTimer中调用Invalidate( );
现在很好的消除了闪烁的问题,但是系统自身的重绘,却出现了问题
比如右键菜单弹出、消失后,菜单所在的区域变成了花花绿绿的东西(但并不是完全不规则,还是与原有被菜单遮住的区域有关,但大小、位置都不对)
如果用另一个窗口来遮住部分区域,现象一样
怎么回事啊?与OnPrepareDC有关吗?
BOOL CWDPFView::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return TRUE;
//return CView::OnEraseBkgnd(pDC);
}
设置了另外一种分辨率:
void CWDPFView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
RECT Rect;
GetClientRect( &Rect );
pDC->SetMapMode( MM_ANISOTROPIC );
pDC->SetWindowExt(16383,16383);
pDC->SetViewportExt(Rect.right,Rect.bottom);
CView::OnPrepareDC(pDC, pInfo);
}
在Ondraw中用双缓冲画图
在OnTimer中调用Invalidate( );
现在很好的消除了闪烁的问题,但是系统自身的重绘,却出现了问题
比如右键菜单弹出、消失后,菜单所在的区域变成了花花绿绿的东西(但并不是完全不规则,还是与原有被菜单遮住的区域有关,但大小、位置都不对)
如果用另一个窗口来遮住部分区域,现象一样
怎么回事啊?与OnPrepareDC有关吗?
解决方案 »
- 关于消息反射的问题
- 工作三年程序员的我该何去何从
- 在主对话框失去焦点后,想接着自动做点处理,如何实现..
- Button求助!加分!!!!
- 得到程序当前路径的函数?
- 怎么做接收/发送数据dll
- 串口之间进行通信,应该多长时间间隔为好??
- 那位大虾有写闪存卡读卡器驱动程序的经验,请问如何在程序中调用读卡器的驱动程序?
- 哈哈,还是忍不住来上网了!弟兄们过年好啊,散分散分!
- 国内的软件考试证书(如软件工程中级)在到软件公司求职时有用吗?
- 如何取得FormView的颜色?我试过GetSysColor(COLOR_WINDOW) 和GetBkColor()可是都不灵
- 有谁能帮我解答一下这道题目~~~高分在线急等~~~
我在OnTimer中重新设置映射模式就好了
诡秘~