关于VC++6.0插入BMP图片资源的问题

关于VC++6.0插入BMP图片资源的问题,第1张

1、通过导入位图资源的方式,加载位图,当图片质量高时,不能预览,但是在资源视图里面已经存在,然后可以像自定义位图那样使用;

2、若使用的位图超过256色,则VC编译器打不开这些位图资源;

3、VC正常创建、处理的位图只有单色,16色,256色,不支持24位的位图格式;

注:这里涉及到的都是位图文件(*.bmp),通过导入资源的方式,VC不支持jpg格式资源,不过可用代码实现加载jpg或其他格式的图像文件

//下边是一个从磁盘读取任一BMP文件的函数,然后显示在窗体指定坐标上。

OnOpenBMPImage()

{

CFileDialog fileDlg(true,(LPCTSTR)_T("BMP file"),(LPCTSTR)_T("*.bmp"),OFN_HIDEREADONLY,(LPCTSTR)_T("BMP FILE|*.bmp"),NULL)

if(fileDlg.DoModal() == IDOK)

{

HBITMAP m_hBmp=(HBITMAP)LoadImage(NULL,fileDlg.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE)

CClientDC dc(this)

CBitmap bmp

bmp.Attach(m_hBmp)

CDC memdc

memdc.CreateCompatibleDC(&dc)

memdc.SelectObject(&bmp)

BITMAP BitInfo

bmp.GetBitmap(&BitInfo)

int x = BitInfo.bmWidth

int y = BitInfo.bmHeight

dc.BitBlt(0,0,x,y,&memdc,0,0,SRCCOPY)

bmp.Detach()

memdc.DeleteDC()

}

UpdateData(false)

}

估计你的代码有部分是从其他地方copy过来的,所以会出现部分资源无法在rc文件中找到,你可以通过vs2012的主菜单的“视图”->“其他视图”->"资源视图"打开资源视图,然后添加相应的资源。

icon的话一般都可以,但动态的不行,一般icon的大小都可以,颜色无要求,跟楼上说的一样,bitmap可以很大,我编贪食蛇时用了2,3M的图片都没问题,只是在资源视图中无法打开预览,如果用vs2005就可以打开


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11646847.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存