mfc 在背景图片上画线,采用异或R2_NOTXORPEN方式,但是线条会一直闪,请问怎么解决啊
展开全部
参看http://zhidao.baidu.com/question/169728639.html
一般在程序中绘图还是利用缓冲技术比较好。你可以在OnDraw中这样写:
CDC memDC;
CBitmap bmp, *pbmpOld;
memDC.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC, 2000, 2000); // 后面两个数字是宽度与高度,你可以自己先得到窗口的宽度与高度,再设定成这个值
pbmpOld = memDC.SelectObject(&bmp);
// 绘图
memDC.MoveTo(...);
memDC.LineTo(...);
// 最主要的一步
pDC->BitBlt(...);
// 参数可以查看MSDN,注意第五个参数用&memDC,最后一个参数用SRCCOPY就行了
/*
BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );
*/
// 清理
memDC.SelectObject(pbmpOld );
bmp.DeleteObject();
memDC.DeleteDC();
一般在程序中绘图还是利用缓冲技术比较好。你可以在OnDraw中这样写:
CDC memDC;
CBitmap bmp, *pbmpOld;
memDC.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC, 2000, 2000); // 后面两个数字是宽度与高度,你可以自己先得到窗口的宽度与高度,再设定成这个值
pbmpOld = memDC.SelectObject(&bmp);
// 绘图
memDC.MoveTo(...);
memDC.LineTo(...);
// 最主要的一步
pDC->BitBlt(...);
// 参数可以查看MSDN,注意第五个参数用&memDC,最后一个参数用SRCCOPY就行了
/*
BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );
*/
// 清理
memDC.SelectObject(pbmpOld );
bmp.DeleteObject();
memDC.DeleteDC();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询