在桌面的随机一个位置显示一幅小图片,接着在另一个随机位置也显示(原来的不消失),直至充满整个桌面,然后全部消失,最后在桌面的最中间显示另外一幅图片。请高手给出关键代码,以及需要什么库文件希望也一并告知,当然代码越详细越好,请高手指教,小弟不胜感激!

解决方案 »

  1.   

    GetDeskTopWindow()获取桌面句柄
    srand()产生伪随机数
      

  2.   

    显示图片可以用GetDC(0)获得DC,用CreateCompatibleDC创建一个内存DC,用SelectObject选入位图,然后用BitBlt来显示。
    用rand函数产生随机数(开始前执行srand((unsigned)time(0))以免每次产生的随机数都相同),例如有100个位置,可以用随机数对100求余数来决定选择哪个位置,如果该位置已经显示就再重复一次。
    通过定时或Sleep可以控制显示的速度。
      

  3.   

    借楼主的帖子问个相关问题..就是如何刷新..
    比如,我现在得到桌面的HDC,并且,用这个HDC画图,在桌面上也确实可以实现..
    但是,如何刷新呢,怎么把原来画的东西"擦了"..
      

  4.   

    如何刷新Invalidate()
    InvalidateRect()
    刷新
    把原来画的东西"擦了"..再画后面用 TRUE
      

  5.   

    BOOL InvalidateRect(
      HWND hWnd,           // handle to window
      CONST RECT *lpRect,  // rectangle coordinates
      BOOL bErase          // erase state
    );
    //第一个参数传什么呢,我只得到了桌面的HDC,而没有得到桌面的HWND.
      

  6.   

    通知无效Invalidate() 
    系统就重绘了~~
      

  7.   

          GetDeskTopWindow()获取桌面句柄 ,可以利用GetWindowDC
          srand()产生伪随机数