MFC读取资源中的BMP图片并绘制 - 代码示例
以下是一个示例代码,可以读取MFC资源中的5张bmp图片,并计算位图的宽度和高度,并加载在规定的坐标上:
// 假设资源ID为IDB_BMP1, IDB_BMP2, IDB_BMP3, IDB_BMP4, IDB_BMP5
// 假设图像显示在CDocument类的OnDraw函数中,在坐标(100, 100)处
void CMyDoc::OnDraw(CDC* pDC, CView* pView)
{
// 加载位图资源
CBitmap bmp1, bmp2, bmp3, bmp4, bmp5;
bmp1.LoadBitmap(IDB_BMP1);
bmp2.LoadBitmap(IDB_BMP2);
bmp3.LoadBitmap(IDB_BMP3);
bmp4.LoadBitmap(IDB_BMP4);
bmp5.LoadBitmap(IDB_BMP5);
// 创建内存DC
CDC memDC;
memDC.CreateCompatibleDC(pDC);
// 选择位图到内存DC中
CBitmap* pOldBitmap = memDC.SelectObject(&bmp1);
// 获取位图的宽度和高度
BITMAP bmpInfo;
bmp1.GetBitmap(&bmpInfo);
int bmpWidth = bmpInfo.bmWidth;
int bmpHeight = bmpInfo.bmHeight;
// 绘制位图到指定坐标上
pDC->BitBlt(100, 100, bmpWidth, bmpHeight, &memDC, 0, 0, SRCCOPY);
// 恢复原来的位图对象
memDC.SelectObject(pOldBitmap);
}
在OnDraw函数中,我们首先加载5个位图资源,然后创建一个内存DC,将位图选择到内存DC中。接下来,我们可以通过GetBitmap函数获取位图的宽度和高度。最后,我们使用BitBlt函数将位图绘制到指定的坐标上。
请注意,上述代码仅为示例,需要根据实际情况进行调整和完善。
原文地址: https://www.cveoy.top/t/topic/hsTn 著作权归作者所有。请勿转载和采集!