当前位置:文档之家 > 双缓冲技术实现VC绘图

双缓冲技术实现VC绘图

********************所有的GDI绘图函数使用的都是逻辑坐标(逻辑范围)*******************

*******************系统默认情况下物理范围和逻辑范围是1:1 的对应关系*******************

1. 首先定义类成员:

CDC *m_pDC;

CDC MemDC;

CBitmap MemBitmap;

CBitmap *pOldbitmap;

LONG xRange; // 逻辑范围,x方向宽度

LONG yRange; // 逻辑范围,y方向高度

LONG nWidht; // 物理范围,x方向宽度

LONG nHeight; // 物理范围,y方向高度

2. 在类初始化函数中:

m_pDC = this->GetDC(); // 获取设备上下文句柄

CWnd *wnd = GetDlgItem(IDC_SHOWGRAPH); // 获取界面上显示图形的ID控件的句柄

wnd->GetWindowRect(&rect); // 获取显示/画图区域大小(物理范围)

ScreenToClient(&rect); // 转换为客户区坐标

nWidth = rect.Width(); // 显示/画图区域x方向物理宽度

nHeight = rect.Height(); // 显示/画图区域y方向物理高度

3.
在自定义函数中,设置视口与窗口的比例关系:

3. 在自定义函数中,设置视口与窗口的比例关系:

m_pDC->SetMapMode(MM_ANISOTROPIC); // 注意MM_ANISOTROPIC和MM_ISOTROPIC的区别

m_pDC->SetWindowExt(XRange,-yRange); // 设定窗口尺寸范围,画图使用的逻辑范围,实现放大或是缩小,坐标方向↑和→为正向

m_pDC->SetViewportExt(nWidth,nHeight); // 设定视口尺寸范围,客户区实际图形显示的区域范围,大小固定

m_pDC->SetViewportOrg(rect.left,rect.bottom); //设定画图的逻辑原点坐标(0,0)在物理坐标的

(rect.left,rect.bottom)点上

4. 在自定义函数中,双缓冲技术的使用:

下载Word文档免费下载:

双缓冲技术实现VC绘图下载

(共16页)

vc双缓冲VC 双缓冲实现方法

vc双缓冲VC 双缓冲实现方法 - vc双缓冲:VC++双缓冲实现方法 疯狂代码 http://CrazyCoder.cn/ :http:/CrazyCoder.cn/VC/Article22...

VC贴图 ,双缓冲 ,三缓冲

我要讲的是用缓冲机制解决: 1.同上面的 2,3,4: CBitmap bmp; bmp.Load...用VC实现双缓冲技术 3页 免费 vc双缓冲 3页 1下载券 VC绘图-双缓冲技术 ...

基于VC++实现的实时数据监控和显示方法

基于VC++实现的实时数据监控和显示方法_IT/计算机_专业资料。本文介绍了VC++下...使用双缓冲绘图, 需要先将采集的数据在内存中绘制出, 然后不断将内存中的图...

VC++五子棋设计开发与实现

五子棋VC++ 暂无评价 10页 1下载券 基于VC的五子棋游戏软件... 25页 4下载...OnPaint 作为响应绘 制消息的消息处理函数使用了双缓冲技术, 减少了多次绘图可能...

基于VC_实现的实时数据监控和显示方法

的工作则需由程序员编写代码 N 文提出一种简单的方法, 不使用双缓冲技术、 不...VC 环境下工业监控软件趋势曲线显示画图实现 [ J]. 机电一体化, 2001, ( ...