EVC中bar图形绘制与双向缓冲实现

兴趣所至,写了一个bar图形。但是在调试的过程当中出现闪屏等问题。经过一帆研究,最总利用双向缓冲解决了这个问题。如下代码已经注释!

/*author:wboy
date:June 2, 2009
purpose:try to write the bar programme with CBar.h */

//双向缓冲代码
PAINTSTRUCT ps;
CDC *pDC = BeginPaint(&ps) ;
HBITMAP hBm = CreateCompatibleBitmap(pDC->m_hDC,240,280); //创建虚拟位图
HDC hdc1 = CreateCompatibleDC(pDC->m_hDC); //创建和hdc兼容的设备
SelectObject(hdc1,hBm); //选择虚拟画布
//设置参数
CBar *bar=new CBar();
bar->SetYMin(25); //设置Y轴的最小坐标
bar->SetYMax(100); //设置X轴的最小坐标
CString xn="Abscissa";
bar->SetXName(xn); //Y轴标题
bar->SetYName(_T("Ordinate")); //X轴标题
bar->SetTitle(_T("Five figures")); //图形标题
bar->SetLegend(_T("Jan"),35,RGB(255,0,0));
bar->SetLegend(_T("Feb"),55,RGB(255,255,0));
bar->SetLegend(_T("Mar"),100,RGB(0,255,0));
bar->SetLegend(_T("April"),60,RGB(0,255,255));
bar->SetLegend(_T("May"),60,RGB(0,0,255)); //设置标题栏和数据

//开始绘图
//CDC *pDC=GetDC();
bar->DrawBar(pDC,0,0,240,280);

delete bar;

//bar->Set3DBar(TRUE);//设置3d效果
bar->Set3DBar(FALSE);//设置2d效果
bar->SetWithDash(FALSE);

DeleteObject(hBm);
EndPaint (&ps) ;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值