根据图像路径,创建CBitmap对象的方法

  因为项目的关系,需要根据图像路径,创建CBitmap对象。起初查资料找到了LoadBitmap这个函数,根据CSDN得

BOOL LoadBitmap ( LPCTSTR lpszResourceName );

Parameters
lpszResourceName:Points to a null-terminated string that contains the name of the bitmap resource.

  以为这里的lpszResourceName参数是文件路径名,但经过尝试,失败了!找了很多资料才发现问题。

lpszRecourceName按字面意思好像是"指向资源的名称字符串",可实际呢?却不是一般理解的磁盘上的资源文件名,而是VC工程内部已导入的资源名,所以把外部文件的名称赋给它当然不成功了.问题怎么解决呢?---用API函数HBITMAP LoadImage("文件名");不过该函数返回的是指向Load图片的句柄,所以需要用到CBitmap的Attach方法:
////直接从外部文件加载图片

HBITMAP bitmap;
bitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),strFileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
m_backBitmap.DeleteObject();
if(!m_backBitmap.Attach(bitmap))
{
   MessageBox("导入背景图失败!","提示",MB_OK);
   return;
}

引于:http://hi.baidu.com/laoyang1018/blog/item/0404a08b37b3cc6f9e2fb418.html

 

Tip:_tsplitpath()函数,可以用于拆分文件路径名。

posted @   梦不醒  阅读(850)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示