佚名通过本文主要向大家介绍了c++ gdi,gdi画圆,gdi 画箭头,gdi 画三角形,gdi 画虚线等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: c++和gdi画波形图
描述:
解决方案1:
参考上面的代码,m_cacheDC是CDC类型,m_cacheDC是一个大的画板,每次绘图都在这个画板上画,然后再把画板上的内容贴到控件上,就是BitBlt,m_iX和m_iY是滚动条的位置,也就是滚动条消息处理函数中的nPos,这样每次拖动滚动条,就成了改变控件显示画板上不同区域的内容了
描述:
gdi画图
请教一下各位前辈,我要做一个用c++和gdi做的使用滚动条来查看的波形图,但是gdi画了线以后滚动条滚动将一部分用gdi画的线滚出程序主窗口再滚回来时,原来超出主窗口的用gdi画的线就被搽掉了,请问应该怎样弄才能使波形图在滚动以后gdi画的图不会丢失呢,谢谢解决方案1:
m_picDC = m_PictureControl.GetDC();
m_cacheBitmap.CreateCompatibleBitmap(m_picDC,MAX_IMAGE_WIDTH,MAX_IMAGE_HEIGHT);
m_cacheDC.SelectObject(&m_cacheBitmap);
m_pic.Draw(m_cacheDC,0,0,m_picWidth,m_picHeight,0,0,m_picWidth,m_picHeight);
m_picDC->BitBlt(1,1,m_iShowWidth,m_iShowHeight,&m_cacheDC,m_iX,m_iY,SRCCOPY);
参考上面的代码,m_cacheDC是CDC类型,m_cacheDC是一个大的画板,每次绘图都在这个画板上画,然后再把画板上的内容贴到控件上,就是BitBlt,m_iX和m_iY是滚动条的位置,也就是滚动条消息处理函数中的nPos,这样每次拖动滚动条,就成了改变控件显示画板上不同区域的内容了