MFC学习笔记——关于图片加载
来源:互联网 发布:ipad下不了软件 编辑:程序博客网 时间:2024/04/28 11:43
花了一点时间跟着做MFC棋牌类的游戏,也算是重头开始学。
关于图片的加载,主要是对CBitmap的构建,而根据网上的一些总结和经验,大概有两种方式。
1、把图片资源固化到程序中的方法
这个方法主要是在资源中进行添加,得到图片的ID,从而直接使用
bitmap.LoadBitmap(IDB_BITMAPID);
2、与程序相互独立的方式
主要是将图片已路径加载的方式添加到程序中,这个方法目前我只学生成HBitmap,并转换成CBitmap,先做这个笔记吧。
HBITMAP hBitmap=(HBITMAP)LoadImage(0,_T("res\\girl.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//转换
bitmap.Attach(hBitmap);
((CStatic *)GetDlgItem(IDC_PIC))->SetBitmap(HBITMAP(bitmap[m_CurrentCommodityIndex])); //IDC_PIC 为图片控件ID
在窗口中显示,例如单文档的窗口背景修改
void CGobangView::OnDraw(CDC* pDC){CDC BEGIN;BEGIN.CreateCompatibleDC(pDC);BEGIN.SelectObject(bitmap);pDC->BitBlt(0,0,580,625,&BEGIN,0,0,SRCCOPY);}
3、在制作五子棋的过程中,在棋盘上直接贴图会发生和背景图重叠的现象。对此,可以用一个相同大小的纯黑贴图先做一个反色的操作
pDC->BitBlt(73+30*x-14,86+30*y-14,27,28, &Mask, 0,0,MERGEPAINT);pDC->BitBlt(73+30*x-14,86+30*y-14,27,28, &BlackChess, 0,0,SRCAND);
这里主要介绍的是MERGEPAINT关键字,该关键字表示将图形反色后同贴图区进行OR操作。
SRCAND则是将图形与贴图区直接AND操作。
因为在计算机中,纯白的RGB为(255,255,255),纯黑的RGB为(0,0,0)。
因此,任何颜色同纯白OR操作,显示的为白色。任何颜色与纯黑操作,显示为当前颜色。
而AND操作则相反,任何颜色同纯白AND操作,显示为当前颜色。任何颜色与纯黑操作,显示为黑色。
0 0
- MFC学习笔记——关于图片加载
- 关于在MFC中加载PNG图片
- Android学习笔记————异步图片加载
- 学习笔记之——Android图片加载框架Picasso
- VS2015——MFC加载图片遇到的问题
- MFC学习笔记(1)——颜色、图片简单自绘
- MFC加载图片资源
- 加载png图片 MFC
- MFC 加载png图片
- MFC图片加载
- MFC加载JPG图片
- MFC 加载jpg图片
- mfc加载透明图片
- MFC动态加载图片
- MFC加载PNG图片
- MFC加载图片
- iOS学习笔记46——图片异步加载之SDWebImage
- iOS学习笔记47——图片异步加载之EGOImageLoading
- [置顶] 从零开始学C++之对象语义与值语义、资源管理(RAII、资源所有权)、模拟实现auto_ptr<class>、实现Ptr_vector .
- 机器学习界大牛林达华推荐的书籍(Recommended Books)
- POJ 2126 / ZOJ 2431 : Factoring a Polynomial - 易(判断多项式是否能够分解)
- C++实现快速排序QuickSort
- HBase的java操作
- MFC学习笔记——关于图片加载
- C#设计模式总结
- 继承与派生2
- 日拱一卒(三)
- 百度地图开发(五)之公交信息检索 + 路线规划
- unity 基本函数整理[4_Unity脚本 + 5_游戏元素的设计]
- C/C++预编译指令
- 超全面的.NET GDI+图形图像编程教程
- swift代理传值