实现类似于windows任务管理器一样的东西
将接受到的数据动态的从右边画到左边
想先从简单的入手,将一条直线从右边移到左边
用OnTimer来做
每隔100毫秒刷新一下,调用画图程序
现在就是在这个画图程序中该如何做呢
我试着写了一下,代码如下:
for(i=m_right_x;i>0;i=i-num)
{
if(i>0)
{
pDC->MoveTo(i,m_bottom_y);
pDC->LineTo(i,m_top_y);
}
}
num是对话框宽度的1/10
思路困住了,请高人指点。谢谢

解决方案 »

  1.   

    在Timer事件里面
    static int x = 200;pDC- >MoveTo(x,m_bottom_y); 
    pDC- >LineTo(x,m_top_y); x -= 10;
    if (x < 0)
    {
        x = 200;
    }200可以用一个变量替代,那个变量的值就是显示区域的宽度
      

  2.   

    我目前也在做相关的工作,不过比你稍微复杂一些。
    你要实现的效果如果没有滚动条的话,只需把最左边的数据去掉,然后添加上最新的数据:time1
    数据    -    图像
    1234   -> "1234"time2
    数据   -    图像
    1234   -> "2345"
    这样看起来在第二次数据到来时time1时的1234已经往左一了一格,最新的数据5也添加到了最后一个位置。如果有滚动条的话,方法类似,只不过当超出范围时设置一下滚动条的位置,让它自动滚动我见过一个做的挺不错的,但是没太看明白:
    http://www.vckbase.com/english/code/controls/histogram_control.shtml.htm