博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

封装垂直百叶窗方法

Posted on 2010-04-23 16:09  ccmfc  阅读(251)  评论(0)    收藏  举报

今天看那个马塞克特效头有点晕。。。说真的头次用。。。。

明天来写这个特效了。。。不想COPY代码。。。。得好好想想为什么这么用。。。。

还是百叶窗的效果容易些。。。没用到vfw.h中的方法。。。就是直接绘制出来的。。。

头文件中声明

#include "BufferDC.h"
//#include "vfw.h"


class CMemDC
{
public:
 CMemDC(CDC *pDC,const CRect rt);
 ~CMemDC();
 BOOL SetShutter(const CBitmap &bitmap, const BITMAP &bmp); 
 //BOOL SetMosaic(const CBitmap &bitmap, const BITMAP &bmp);
private:
 CDC *m_pDC;
 CRect m_Rect;
 CSize m_Size;
};

SetShutter具体的实现方法。。。

DC memDC;
// CBufferDC bDC(m_pDC,m_Rect);
 memDC.CreateCompatibleDC(m_pDC);
 memDC.SelectObject(bitmap);
 for(int i=0; i<20; i++)
 {
  for (int j=i; j<m_Rect.Width(); j+=20)
  {
   m_pDC->StretchBlt(j,0,1,m_Rect.Height(),&memDC,j,0,1,bmp.bmHeight,SRCCOPY);
  }
  Sleep(100);
 }
 Sleep(100);

去做播放器去了。。。汗。