加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MFC、VS怎样添加PNG资源?

(2013-07-25 17:44:44)
标签:

mfc

cbuttonst

png

it

分类: MissCombanc

一、      MFCVS怎样添加PNG资源?

1) 在打开的工程中,先自定义一个新的资源类型,比如里面填的是PNG,然后工程的资源中就会多出这个选项。2)然后找到.rc文件,用记事本打开,然后找到刚刚的添加的新类型PNG,然后在里面添加项就可以了,比如添加一项
IDR_PNG_OK PNG "res\\Ok.png"
3)这样再重新打开工程,就会发现资源中的PNG这部分多了刚刚添加的文件,不过是多出双引号的,这是因为还没有给它分配ID。这时再把这个文件中的双引号去掉,IDE就会自动为它分配资源ID了。然后就可以通过IDR_PNG_OK这个宏来对它引用了

会遇到什么问题呢?就是我明明添加了新的资源类型,可是在.rc文件中却看不到呀。别着急,很有可能的一个原因,就是你的软件卡掉了,再随便新建一个什么资源类型,怎么样,两个一起出现了吧,删掉那个没用的,就OK啦。

二、      关于MFC中,怎样将按钮加载png文件,同时调整png文件大小?

加载png文件,CbuttonST 是一个非常不错的选择。

CButtonST m_btnClassAdd;

 

CImage imSrc,imDest;

imSrc.Load(_T("res//newlyadd.png"));//读入原始图片

BOOL bResult = imDest.Create(42,24,32,0);//创建新大小的图片

 

CDC *pDC=CDC::FromHandle(imDest.GetDC()); 

//HDC hDC=imDest.GetDC();    这一句不知道为什么,这样去获得hDC的时候,在下面的使用语句imDest.Detach();时会出现异常:m_hDC == 0;至今搞不懂为什么

HDC hDC = pDC->m_hDC;

SetStretchBltMode(hDC,STRETCH_HALFTONE);

bResult = imSrc.Draw(hDC, 0,0,42,24 );

imDest.ReleaseDC();

HBITMAP hbmp = imDest.Detach();

m_btnClassAdd.SetBitmaps(hbmp,RGB(255,255,255));

m_btnClassAdd.SizeToContent();

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有