怎么实现在屏幕上绘制图画?我通过CWindowDC dc(NULL)来得到在屏幕上绘制的dc。可以实现在屏幕上简单的绘制。但这样的绘制有问题,没办法主动将绘制的东西擦除,而且如果屏幕刷新后绘制的东西就会消失
有什么办法能够实现在屏幕上绘制图片,就像在自己的CWnd上绘制一样,可以控制绘制。
常看到一些在屏幕上绘制滚动小球之类的小程序,不会影响其他程序的运行。绘制感觉和在自己的CWnd上绘制一样,是怎么实现的

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=673
      

  2.   

    http://www.vckbase.com/document/viewdoc/?id=802
      

  3.   

    小球之类的我估计用的是异或。
    SetROP2(R2_XORPEN);
    或者
    SetROP2(R2_NOT);
      

  4.   

    c9714052(ali)不是很明白。可不可以给点代码看看
      

  5.   

    我觉得Practise_Think(时代“过客”) 说得很有道理“那个小球其实就是一个窗口,并不是绘画上去的,而是不断地移动窗口”。
    桌面是不能被程序所完全控制的。
    桌面程序不是在桌面上画图,而是创建了一个或N个特殊窗口
      

  6.   

    同意Practise_Think的,应该是一个没有边框的窗口
      

  7.   

    同意楼上的
    Practise_Think的做法相对也简单
    不过不知道符不符合你的要求
      

  8.   

    我看过一个小软件,鼠标会变成一个大锤子,点到哪里就把屏幕砸裂。取消锤子后,屏幕不会恢复,感觉好像把显示器打碎了一样,但还可以写字,用world等软件,我就不知道他是怎么做的。
      

  9.   

    我也玩过这么一个东东(好像叫DESKTOP.EXE),但是我玩的那个就不能做其它事,只有ESC后退出。它把窗口设为全屏,并记录当前桌面作为窗口内容,然后改写鼠标样式,hook鼠标事件,当点击鼠标时切换到该程序。而一旦退出,自然窗口中修改的内容都不会再有了。
      

  10.   

    用内存画好后翻出来还是一样呀
    无非就是把原来的屏幕copy到内存dc上然后再画,然后再bitblt出来。但要考虑到桌面会变化,还有小球移动的时候不能留下拖痕。