解决方案 »

  1.   

    1楼的方法如果不行的话,重载OnEraseBkgnd试试。
      

  2.   

    使用CreateRgn创建区域
    使用Selectobject或者SetClipRgn设置区域
    这样,只有在区域内的显示才能被修改
      

  3.   


    我是C/API...C++重载这一块还不是特别会用。谢谢你的方法,我试试举一反三下。
      

  4.   


    我是C/API...C++重载这一块还不是特别会用。谢谢你的方法,我试试举一反三下。
    用到多线程,要考虑线程同步问题。
      

  5.   

    所谓客户区划分成指定形状其实就是一个绘制问题
    字母下落和子弹上升都用动画做
    在OnPaint里同一绘制
    你就查一些关于绘图和动画的资料即可
      

  6.   

    不一定要分成四个区域然后只刷新一个区域,你把四个区域自己算好位置保存好,绘图的时候保证没画错就行,然后Invalidate整个客户区也行吧另外问2个问题
    1.楼主是建的什么工程?Win32还是MFC单文档或者MFC对话框?
    2.楼主的自称前后矛盾了哦。。小女子
      

  7.   


    防止无人回复的尴尬,嘿嘿。
    win32工程。
    Invalidate整个客户区,我试试以上几种方式。
      

  8.   

    用的是C/API,不是那个C++/MFC.C++那一块,我得多学学。
    我再想想。谢谢你~
      

  9.   

    设置一个变量来控制,当它为TRUE时则运动。那就在收到WM_KEYDOWN后把这个变量设为TRUE
      

  10.   

    设置一个变量来控制,当它为TRUE时则运动。那就在收到WM_KEYDOWN后把这个变量设为TRUE我去试试看,谢谢你了~
    胡歌
      

  11.   


    不对啊,我用的是InvalidateRect来刷新客户区的,你若是在WM_KEYDOWN中接收的话,还是没有循环经过WM_PAINT,因为INvalidateRect必须是在收到WM_PAINT才刷新的。。