我以前用Bmp文件作为DialogBox的背景图片 但是Bmp实在是太大了 一加到资源里面立马软件体积巨增,所以我想有没有什么方法减少软件体积比如使用Jpg作为背景图片 但是我不知道如何使:(
解决方案 »
- 100分求教MFC猜拳。。。
- CString类直接赋值问题,请大家帮忙检查一下是什么问题?
- ocx控件自定义事件,怎么写代码,在哪里写
- 请用过Cpicture类显示JPG图像的高手进来下,教下我怎么用?搞了半天没搞好
- 求助:在对话框的一个矩形区域内实现通过滚动条进行滚动
- 请问在图像处理当中的模糊处理,有什么具体应用?
- ===VC中能否编写CORBAL程序===
- 请问在那里可以找到哈希和数字签名的代码?
- 子线程内存溢出,会导致主进程挂掉吗?
- 为什么无法删除表?谁来帮帮我
- <<VC++/Turbo c 串口通信编程实践>>中关于求校验和的一些基础问题~~
- [分太少,给足100分.再开一贴]急~~~~~~~为什么WinSocketProcess只执行了一次啊~~~~~~~~~
HBITMAP LoadAnImage(
LPCTSTR FileName // image to load
)
{
// Use IPicture stuff to use JPG / GIF files
IPicture* p;
IStream* s;
HGLOBAL hG;
void* pp;
FILE* fp;
if (FileName == NULL || _tcscmp(FileName, "") == 0)
return NULL; // Read file in memory
fp = fopen(FileName,"rb");
if (!fp)
return NULL; fseek(fp,0,SEEK_END);
int fs = ftell(fp);
fseek(fp,0,SEEK_SET);
hG = GlobalAlloc(GPTR,fs);
if (!hG)
{
fclose(fp);
return NULL;
}
pp = (void*)hG;
fread(pp,1,fs,fp);
fclose(fp); // Create an IStream so IPicture can
CreateStreamOnHGlobal(hG,false,&s);
if (!s)
{
GlobalFree(hG);
return NULL;
} OleLoadPicture(s,0,false,IID_IPicture,(void**)&p); if (!p)
{
s->Release();
GlobalFree(hG);
return NULL;
}
s->Release();
GlobalFree(hG); HBITMAP hB = 0;
p->get_Handle((unsigned int*)&hB); // Copy the image. Necessary, because upon p's release,
// the handle is destroyed.
HBITMAP hBB = (HBITMAP)CopyImage(hB,IMAGE_BITMAP,0,0,
LR_COPYRETURNORG); p->Release();
TRACE2("\nFILE: %s, HANDLE: 0x%x", FileName, (UINT)hBB);
return hBB;
}
http://www.bypro.net/PostAttachment.aspx?PostID=23134&AttachmentID=1933