C++/MFC-GDI绘图之CBitmap位图

一、显示资源里的位图

①载入图片:loadbitmap

②创建设备上下文:CreateCompatibleDC

③替换设备环境位图:SelectObject

④复制位图:bitblt

⑤释放对象

⑥释放设备上下文

示例代码:

{	// TODO: 在此添加控件通知处理程序代码
	CBitmap mybitmap;
	mybitmap.LoadBitmap(IDB_BITMAP3); //载入资源里的位图
	CDC *pdc=GetDC();
	CDC bmp;
	bmp.CreateCompatibleDC(pdc); //创建一个兼容pdc的设备上下文
	bmp.SelectObject(&mybitmap); //替换设备环境位图
	
	pdc->BitBlt(0,0,30,50,&bmp,0,0,SRCCOPY); //复制位图至pdc 也就是主窗口
	mybitmap.DeleteObject();//释放掉对象
	ReleaseDC(pdc); //释放掉设备上下文
	ReleaseDC(&pbmp); //释放掉设备上下文
}

二、从文件载入位图

将上述的mybitmap.LoadBitmap(IDB_BITMAP3); //载入资源里的位图改为:

WCHAR strPath[]=L"D:\\1.bmp";
HBITMAP bitmap = (HBITMAP)::LoadImage(NULL,strPath, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_DEFAULTSIZE);
mybitmap.Attach(bitmap);//Attach是CGdiObject成员用来附加到一个GDI对象设备

三、位图画刷

即用位图来填充区域

mybrush.CreatePatternBrush(&mybitmap); //创建画刷,用位图初始化
C++/MFC-GDI绘图之CBitmap位图_第1张图片




你可能感兴趣的:(C++/MFC-GUI绘图)