dc copy方法

这个函数的功能在msdn中是这样解释的:Copies a bitmap from the source device context to this current device context,翻译过来就是从源设备环境上拷贝一张位图到目前的设备环境中来。函数定义为:
BOOL BitBlt(
   int x,
   int y,
   int nWidth,
   int nHeight,
   CDC* pSrcDC,
   int xSrc,
   int ySrc,
   DWORD dwRop 
);
  X:代表目标矩形左上方的X坐标
 Y:代表目标矩形左上方的Y坐标
 nWidth:代表目标矩形的宽度
 nHeight:代表目标矩形的高度
 pSrcDC:代表源设备环境的一个引用
 xSrc:代表从源位图拷贝时,源位图左上方拷贝的起始X坐标。
 ySrc:代表从源位图拷贝时,源位图左上方拷贝的起始Y坐标。
 dwRop :代表拷贝的方式。
 
 你那个应该是从设备环境mdc上拷贝一张位图到当前的设备环境dc中,拷贝后的位图在当前设备环境中的左上方起始是(0,30),目标矩形宽480,高480,中间的两个0表示位图直接完全拷贝过来,并没有经过裁剪,WHITENESS表示使用与物理调色板中索引1有关的颜色填充目标矩形区域,起始这里的颜色应该就是白色了,意思是拷贝后用白色填充没有被位图覆盖的空白的区域。。

------------

CDC  m_dcMem;

CBitmap m_bmpMem;//可放到对话框头文件类定义中

 

 

为对话框添加WM_PAINT消息

 

void CETimeDlg::OnPaint()

{

         CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here

// Do not call CDialog::OnPaint() for painting messages

 m_dcMem.CreateCompatibleDC(&dc);//创建兼容DC

 

         CString filpath=L"";

         filpath+="//NAND//sk//GPS界面主菜单-1.BMP/0"; //图片路径

         m_bmpMem.m_hObject=SHLoadDIBitmap(filpath); //图片加载至m_bmpMem

          //或者图片作为资源 m_bmpMem.LoadBitmapW(IDB_BITMAP1);

 

        m_dcMem.SelectObject(&m_bmpMem);//位图选入兼容DC

 

 

        dc.BitBlt(0,0,800,480,&m_dcMem,0,0,SRCCOPY);//兼容DC的位图贴到当前DC

 

 

}

 

 

你可能感兴趣的:(copy)