gdi-图形移动不平滑的问题,请求帮助

问题描述

图形移动不平滑的问题,请求帮助

我用MFC 框架,gdi画图, 已经使用了 双缓冲。下面是代码。
我用timer 没40ms 调用一次invalidate, 理想的情况下,横线是很平滑的从上往下移动。但现在的情况是 这个线一跳一跳的,不知道我哪里做错了,希望能得到帮助

int ss = 0 ;

void CSmoothTestView::OnDraw(CDC* pDC)
{
CSmoothTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

// TODO: add draw code for native data here

CRect rcClient ;

GetClientRect(rcClient) ;

CBitmap bitmap ;

bitmap.CreateCompatibleBitmap(pDC, rcClient.Width(), rcClient.Height()) ;

CDC memScreenDC ;
CBitmap* pOldScreenBmp ;

memScreenDC.CreateCompatibleDC(pDC) ;

pOldScreenBmp = memScreenDC.SelectObject(&bitmap) ;
memScreenDC.FillSolidRect(0, 0, rcClient.Width(), rcClient.Height(), RGB(255, 255, 255)) ;

memScreenDC.MoveTo(0, ss) ;
memScreenDC.LineTo(rcClient.right, ss) ;

pDC->BitBlt(
        0,
        0,
        rcClient.Width(),
        rcClient.Height(),
        &memScreenDC,
        0,
        0,
        SRCCOPY
        ) ;

memScreenDC.SelectObject(pOldScreenBmp) ;

if ( ss > rcClient.bottom )
{
    ss = 0 ;
}

ss += 2 ;

}

时间: 2024-10-10 16:07:10

gdi-图形移动不平滑的问题,请求帮助的相关文章

.NET3.5 GDI+图形操作1

前言: 本文章转载自本人刚刚买的<ASP.NET 3.5从入门到精通>这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些 失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行 会出现些显示问题,本人更改了其中的一些代码.本文章经历昨晚本人五个小时的手打而成 (且还未打完,下班回去继续打,想不到我的打字速度退化得这么快,郁闷!!!),俗话 说:好记性不如烂笔头,把书的内容手打出来

.NET3.5 GDI+图形操作2

10.1.3 .NET对绘图的支持 .NET对图形操作的支持类库都集中在System.Drawing命名空间下.所以在直接使用.NET类 库时,不要忘记添加using System.Drawing. 下表列出了绘图常的类库,下一节将以示例的方式辅助理解. 上表只是罗列了部分常用类型,在基本图形操作中已经足够了.用户可以使用GDI+在 Windows窗体和控件上呈现图形图像.虽然无法在Web窗体上直接使用GDI+, 但可以通过形成 图片的方式将图像发送到客户端浏览器. 另外,图形操作是非常耗费计算

.NET3.5 GDI+图形操作6(完)

10.4 应用实例 10.4.1 饼图 统计图是信息管理系统常用的功能,常用的有饼图.柱形图.拆线图等.饼图用来表示各 部分比例,柱形图用来表示各部分的比较,拆线图用来表示发展趋势,另外还有其他一些具 有特殊功能的图示.本小节将以二维饼图为例说明通过.NET GDI+来绘制统计图的原理. 本例实现效果很简单,即根据给予的一组数据计算出各个数据项的比例,并分别用不同颜 色表示,组成一个圆饼,如下图所示: 用户可以使用FillPie来绘制饼块,多个饼块拼接在一起就形成了圆饼效果.其基本算法 就是每个

.NET3.5 GDI+图形操作4

10.3 基本绘图 在.NET中图形包括以下两个步骤. 第一,创建Graphics对象. 第二,使用Graphics对象绘制线条和形状,呈现文本或显示操作图像. 由此可见,如何创建Graphics对象是首先要解决的问题.本节将讲述如何绘制直线.矩形 .圆等基本图形,然后基本图形构成复杂的图形.Graphics常用的绘图方法如下表. 10.3.1 创建图形对象 创建图形对象可有如下几种方法. ² 在窗体或控件的Paint事件中接收对图形对象的引用,作为PaintEventArgs的一 部分.在为控

.NET3.5 GDI+图形操作3

10.2.4 Brush Brush通常被称为,用于定义填充图形形状(如矩形.椭圆.饼形.多边形和封闭路径) 的内部对象.Brush是一个抽象基类,不能进行实例化.若要创建一个画笔对象,需使用从 Brush派生出的类,如SolidBrush.TextureBrush和LinearGradientBrush. SolidBrush类用于定义单色画笔.画笔用于填充图形形状,如矩形.椭圆.扇形.多边形 和封闭路径.下表列举了常用的方法和属性. System.Drawing.Brushes定义了很多标准

.NET3.5 GDI+图形操作5

10.3.3 绘制简单图形 简单图形是组成复杂图形的基础,通过本小节的例子,读者可以掌握绘制复杂图形的基础 . 除了直线外,矩形是所有简单图形的基础.因为在Windows操作系统中,大部分图形在内 存中的表示都是矩形块,比如一个窗体.一个按钮控件等.即使是圆形的界面元素,在表示 其位置时,仍然以所在矩形的左上角坐标为参照点,通过宽和高来框定其位置及其区域. 那么如何绘制矩形?Graphics中的DrawRectangle可以在规定一个左上角顶点和长宽边长 的情况下绘制一个矩形.下面的代码实现生成

VB.NET中使用GDI画图具体应用。

下面的例子通过重载Form1窗体的OnPaint()方法绘制GDI图形Protected Overrides Sub onpaint(ByVal e As System.Windows.Forms.PaintEventArgs)        '/////////////绘制任意直线        Dim g As Graphics = e.Graphics        Dim mypen As Pen = New Pen(Color.Red, 2)        g.DrawLine(myp

winfrom GDI知识

 c#使用GDI+简单绘图 http://blog.csdn.net/smartsmile2012/article/details/30255303 NET3.5 GDI+ 图形操作1 http://www.cnblogs.com/niunan/archive/2009/04/18/1438562.html

异曲同工 WinForm和ASP.NET如何选?

在.NET平台开发中,我们经常使用WinForm进行C/S架构的开发,也用过ASP.NET作为B/S架构开发.那么有些人可能糊涂了,不知道在这两者之间如何做选择了.其实作为将来要在.NET平台上做开发的工作者来说,无论如何都要同时掌握WinForm编程和ASP.NET编程. 当我们开始开发带有用户界面的应用程序时,可以使用WinForm或ASP.NET.两者在开发环境(Visual Studio系列)中都具有完全的设计时支持,并且可以提供丰富的用户界面和高级应用程序功能解决现实业务问题.由于这种