要实现一个动画模拟的功能。我编写了一些ATL控件,他们根据自己的一些属性得值的变化有不同的显示方式,比如有一个控件表示仓库, 她的外形是矩形,矩形中灰色的部分表示其中的存货多少。有很多这种控件,我现在编写了一个循环,每一次都为这些控间赋新的属性值,然后重画。但是,并没有得到我想要的动画效果,而是直接变成最后的结果。如何才能让他们看起来像动画呢?
另外,我希望在循环过程中系统能够根据用户要求暂停,给ATL控件赋值,这里有两个疑问:第一,ATL控件如何能实现对话框(就是我双击她,他就弹出对话框以便赋值)?
第二,怎样让系统响应用户的指令儿暂停?
若哪位高手指点迷津,小生愿倾囊相赠,绝对多于2000分

解决方案 »

  1.   

    你的这些功能都在OnDraw中依靠其他标志进行控制就行了。
      

  2.   

    1. ATL里面可以添加对话框,在杂项里面(就一个内容)。
    2. 响应click消息,在classview里面右击你的实现类,implement windows message......
      

  3.   

    告诉你杂项在哪:
    Insert--->New ATL Object--->miscellaneous
      

  4.   

    不要在循环中不停的刷新控件的状态,这样有以下两点不足:
    1. 刷新太快,不能看见中间结果。这就是为什么你只能看见最后结果的原因。
    2. 不能接受消息,你没办法在中间修改控件的属性值。所以建议你用Timer,每隔一段时间(如一秒)刷新一次控件状态。这样既可接受外界消息,又可看清变化过程。
      

  5.   

    从下向上一次一行,中间加点间隔时间可以用SLEEP函数
      

  6.   

    赋值的话最好使用属性页
    双击添加WM_LBUTTONDBLCLK消息响应就可以了
    你可以用Timer,在接到用户暂停指令时使Timer无效。