本例将要使用的函数定义如下:
BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );
前面4个参数指的是目标设备;
(5)指的是原设备句柄
(8)指的是复制类别,其可选参数如下:
BLACKNESS表示全部复制成黑色;
DSTINVERT
MERGECOPY
MERGEPAINT
NOTSRCCOPY进行反色复制;
NOTSRCERASE进行反色复制;
PATCOPY
PATINVERT
PATPAINT
SRCAND
SRCCOPY表示的是按原样复制;
SRCERASE
SRCINVERT
SRCPAINT
WHITENESS全部复制成白色。
第一步引入一个位图并定义公用变量
CBitmap m_bitmap;//定义一个位图
BITMAP bminfo;//定义一个位图信息
int dlg_h;
int dlg_w;
第二步在对话框构造函数CMyDlg(CWnd* pParent /*=NULL*/)中添置如下代码:
m_bitmap.LoadBitmap(IDB_BITMAP1);
m_bitmap.GetObject(sizeof(BITMAP),&bminfo);
dlg_h=bminfo.bmHeight;
dlg_w=bminfo.bmWidth;
第三步修改OnPaint()中内容如下:
CPaintDC dc(this);//定义一个设备句柄
CDC dcMem;//定义一个设备
dcMem.CreateCompatibleDC(&dc);//将这个设备定义成一个内存设备
dcMem.SelectObject(&m_bitmap);//为这个设备选一个画笔
dc.BitBlt(0,0,dlg_h,dlg_w,&dcMem,0,0,SRCCOPY);
说明:只能定制方形位图。
BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );
前面4个参数指的是目标设备;
(5)指的是原设备句柄
(8)指的是复制类别,其可选参数如下:
BLACKNESS表示全部复制成黑色;
DSTINVERT
MERGECOPY
MERGEPAINT
NOTSRCCOPY进行反色复制;
NOTSRCERASE进行反色复制;
PATCOPY
PATINVERT
PATPAINT
SRCAND
SRCCOPY表示的是按原样复制;
SRCERASE
SRCINVERT
SRCPAINT
WHITENESS全部复制成白色。
第一步引入一个位图并定义公用变量
CBitmap m_bitmap;//定义一个位图
BITMAP bminfo;//定义一个位图信息
int dlg_h;
int dlg_w;
第二步在对话框构造函数CMyDlg(CWnd* pParent /*=NULL*/)中添置如下代码:
m_bitmap.LoadBitmap(IDB_BITMAP1);
m_bitmap.GetObject(sizeof(BITMAP),&bminfo);
dlg_h=bminfo.bmHeight;
dlg_w=bminfo.bmWidth;
第三步修改OnPaint()中内容如下:
CPaintDC dc(this);//定义一个设备句柄
CDC dcMem;//定义一个设备
dcMem.CreateCompatibleDC(&dc);//将这个设备定义成一个内存设备
dcMem.SelectObject(&m_bitmap);//为这个设备选一个画笔
dc.BitBlt(0,0,dlg_h,dlg_w,&dcMem,0,0,SRCCOPY);
说明:只能定制方形位图。